0

我有一个使用标准的 iOS 通用应用程序UISplitViewController

几乎自从我开始开发应用程序以来,我就有以下代码将左侧的主视图控制器与右侧的详细视图控制器链接起来:

- (void)viewDidLoad
{
    [super viewDidLoad];

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

在最近的一些更改之后,最后一行停止工作,从而破坏了一些功能。这种行为的原因self.splitViewControllernil在这一点上。移动最后一行来viewWillAppear:解决问题,但恕我直言,这不是完全正确的地方。

我所做的更改与此无关,我没有更改控制器层次结构或我使用的情节提要。所以我无法解释这种行为的起源。任何提示将不胜感激。

4

1 回答 1

1

您可以为您的 splitViewController 实例创建一个动态访问器,这样它就永远不会返回 nil,或者当然检查 viewDidLoad 中是否为 nil。

例如

- (CustomViewController *)splitViewController 
{
    if (splitViewController == nil) {
      splitViewController = [[CustomViewController alloc] init]; 
    }
    return splitViewController; 
}
于 2013-06-09T20:21:38.680 回答