在Storyboard中的SplitView,无法连接委托

时间:2012-01-23 16:30:51

标签: delegates uisplitviewcontroller uistoryboard

我在故事板中定义了一个带有SplitViewController的iPad界面。我想将SplitViewController的委托设置为指向详细控制器,但IB不允许进行该连接。

  • 设置“对象”对象并将类更改为我的详细控制器的类使得委托指向详细控制器的不同实例而不是显示的实例。
  • 我在app委托中手动连接(在didFinishLaunching中)的尝试没有结果,代表仍然没有。
  • 将委托更改为AppDelegate并实现协议有效,但将消息传递给详细控制器不起作用(即使我确认我引用了同一个实例)。

没有任何作用。我可以在加载详细视图时设置self.splitViewController.delegate = self,然后它成为没有问题的委托。但我错过了在此之前发生的任何代表电话。

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

我用“普通”xib做了这个,没有问题。这似乎是一个特殊情况,即不允许在故事板中连接各个场景的插座。

1 个答案:

答案 0 :(得分:9)

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

UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;