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

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

什么都不起作用。我可以设置 self.splitViewController.delegate = self 当详细信息视图加载,然后它成为没有问题的委托。但是我错过了在该点之前发生的任何委托调用。

对于上下文,我需要获取splitviewcontroller的委托调用,以便我可以在detailview中显示一个按钮以显示弹出框,标准做法也是如此。现在,如果应用程序是在纵向启动,它必须旋转到横向,然后返回按钮显示。

我已经用"正常"xibs做到了这一点,没有问题。这似乎是不允许在故事板中跨场景连接网点的更普遍问题的特例。

有帮助吗?

解决方案

我不知道为什么这次工作,而不是前80次,但我把这个添加到我的AppDelegate:

UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top