我有一个带有根表视图的导航控制器,它有几个链接。点击每个链接将移动到下一个视图(通过将其推送到导航控制器的堆栈)。但是假设在那个“下一个视图”中,我有一个UIButton,它应该让我更进一步到另一个视图(通过推送到相同的导航控制器的堆栈)...
查看控制器 - >第一个视图 - >第二个视图 - >第三个视图..........
现在,当我处理第一个视图(并成功将其推送到导航控制器的堆栈)时,我可以轻松访问导航控制器,因为它已在同一个文件本身中实例化。我真正怀疑的是 - 如何在远离视图控制器(例如,第三视图或第四视图等)中访问导航控制器?请注意,我没有使用任何单独的代表。所有导航栏方法都已在一个文件中实现,并通过插座连接到导航控制器。
答案 0 :(得分:1)
当您将ViewController推送到NavigationController时,ViewController将自动设置它的navigationController属性。这意味着无论您在堆栈中的哪个位置,都可以访问相同的NAvigationController。
-Update -
navigationController
在每个UIViewController中,您都可以访问该属性。 因此,对于已被推入堆栈的任何其他UIViewController,您应该能够这样做:
[self.navigationController pushViewController:othercontroller animated:YES];
查看UIViewController的文档,了解您可以使用的其他魔法属性。