我有一个UISplitViewController,它也是UIWindow的根视图。我将两个UINavigationControllers分别设置为主视图控制器和详细视图控制器。 UITableViewController是UINavigationController的根视图,它位于masterviewcontroller中。当我从UITableViewController中选择一个项目时,详细视图控制器会正确响应。但是,当我从MasterViewController的UINavigationController推送另一个UITableViewController时,详细视图控制器停止响应。
我使用[[splitviewcontroller.viewcontrollers lastObject] topViewController]来获取其详细视图控制器。它适用于UINavigation控制器内的第一个视图控制器,但在我使用self.navigationcontroler pushViewController推送新的viewcontroller后,在这个新的视图控制器上使用[[splitviewcontroller.viewcontrollers lastObject] topViewController]。不知何故,我无法得到这个splitviewcontroller的详细视图控制器。
任何专家都可以帮助我。先感谢您。
答案 0 :(得分:0)
而不是[[splitviewcontroller.viewcontrollers lastObject] topViewController]
尝试使用[[splitviewcontroller.viewcontrollers lastObject] visibleViewController]
。希望这有帮助!
答案 1 :(得分:0)
好像你有一个非常复杂的层次结构。我的建议是绘制UI结构并参考Storyboard以获取帮助。您可以使用View Controller的parentViewController属性来获取对所需视图控制器的引用。此外,viewControllers属性将返回由接收器管理的视图控制器数组,以便您可以查看层次结构的结构。希望这有帮助!