gpt4 book ai didi

ios - 使用 showDetailViewController 时 UISplitViewController 崩溃

转载 作者:行者123 更新时间:2023-11-29 10:34:39 35 4
gpt4 key购买 nike

在我的主视图中,我有 4 个静态表行。其中 2 行向下钻取到主视图中的详细 View ,另外 2 行替换详细 View 的内容。我通过适本地调用 showViewController() 和 showDetailViewController() 函数来控制 didSelectRowAtIndexPath() 方法发生的情况:

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == 0) {
Master2TVC *m2tvc = [self.storyboard instantiateViewControllerWithIdentifier:@"master-2"];
[self showViewController:m2tvc sender:self];
} else if (indexPath.row == 1) {
Master3TVC *m3tvc = [self.storyboard instantiateViewControllerWithIdentifier:@"master-3"];
[self showViewController:m3tvc sender:self];
} else if (indexPath.row == 2) {
Detail2VC *d2vc = [self.storyboard instantiateViewControllerWithIdentifier:@"detail-2"];
[self showDetailViewController:d2vc sender:self];
} else if (indexPath.row == 3) {
Detail3VC *d3vc = [self.storyboard instantiateViewControllerWithIdentifier:@"detail-3"];
[self showDetailViewController:d3vc sender:self];
}
}

Master-Detail 模板的模板创建了从主视图到详细 View 的引用:

self.detailViewController = (DetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController];

如果我没理解错的话,这个引用的存在是为了让主端可以向细节端发送消息。在我的例子中,我的详细 View 的类将发生变化(Detail3VC、Detail2VC 等),所以我决定删除这一行并以另一种方式进行消息传递;但是,现在当我加载任何新的详细 View 并更改 iPad 的旋转时,应用程序有时会崩溃并显示错误 EXC_BAD_ACCESS。

据我了解,EXC_BAD_ACCESS 通常意味着有一个对象卡在不应该的地方。我一直无法在 Apple 文档中找到任何关于在使用 showDetailViewController() 调用时必须更改任何其他内容的内容。事实上,我认为使用 showDetailViewController() 的原因是 splitViewController 管理所有细节,而您不必在自己的类中。

任何人都可以看到这里的错误吗?

最佳答案

我已经确认你遇到的崩溃。改变 iPad 的旋转方向时总是会发生这种情况。
无论如何,我们似乎需要实现 -targetDisplayModeForActionInSplitViewController:UISplitViewControllerDelegate 并返回除 UISplitViewControllerDisplayModeAutomatic 之外的任何值。

- (UISplitViewControllerDisplayMode)targetDisplayModeForActionInSplitViewController:(UISplitViewController *)svc {
return UISplitViewControllerDisplayModePrimaryOverlay;
}

关于ios - 使用 showDetailViewController 时 UISplitViewController 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27736335/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com