Storyboard中的SplitView,无法连接delegate
-
12-11-2019 - |
题
我有一个在故事板中定义的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;
不隶属于 StackOverflow