9

我在情节提要中定义了一个 iPad 界面,带有一个 SplitViewController。我想将 SplitViewController 的委托设置为指向详细控制器,但 IB 不允许建立该连接。

  • 放置一个“对象”对象并将类更改为我的细节控制器的类使委托指向与显示的细节控制器不同的实例。
  • 我尝试在应用程序委托中手动连接它(在 didFinishLaunching 中)没有结果,委托仍然为零。
  • 将委托更改为 AppDelegate 并在那里实现协议有效,但将消息传递给详细控制器不起作用(即使我验证我引用的是同一个实例)。

没有任何效果。我可以设置self.splitViewController.delegate = self详细视图何时加载,然后它毫无问题地成为委托。但我想念在那之前发生的任何代表电话。

对于上下文,我需要获取 splitviewcontroller 的委托调用,以便我可以在详细视图中显示一个按钮来显示一个弹出框,这是标准做法。现在,如果应用程序以纵向启动,则必须将其旋转为横向,然后再返回以显示按钮。

我已经用“正常”的xibs完成了这个,没有问题。这似乎是不允许在情节提要中跨场景连接插座的更普遍问题的特例。

4

1 回答 1

9

我不知道为什么这一次有效,而不是前 80 次,但我将它添加到我的 AppDelegate 中:

UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;
于 2012-01-23T16:44:43.747 回答