【问题标题】:View controller chain查看控制器链
【发布时间】:2010-07-14 07:15:20
【问题描述】:

我有一个带有多个链接的根表视图的导航控制器。点击每个链接移动到下一个视图(通过将其推送到导航控制器的堆栈)。但是假设在那个“下一个视图”中,我有一个 UIButton 应该把我带到另一个视图(通过推送到同一个导航控制器的堆栈)......

视图控制器-->第一个视图-->第二个视图-->第三个视图............

现在,当我处理第一个视图(并成功将其推送到导航控制器的堆栈)时,我可以轻松访问导航控制器,因为它已在同一个文件本身中实例化。我真正的疑问是——您如何在远处的视图控制器(例如,第三个视图或第四个视图等)中访问导航控制器?请注意,我没有使用任何单独的代表。所有导航栏方法都在一个文件中实现,并通过插座连接到导航控制器。

【问题讨论】:

    标签: iphone view controller navigation chain


    【解决方案1】:

    当您将 ViewController 推送到 NavigationController 上时,ViewController 将自动设置其 navigationController 属性。这意味着无论您在堆栈中的哪个位置,都可以访问相同的 NAvigationController。

    -更新-

    navigationController
    

    在每个 UIViewController 中,您都可以访问该属性。 因此,对于已推送到堆栈的任何其他 UIViewController,您应该能够做到这一点:

    [self.navigationController pushViewController:othercontroller animated:YES];
    

    查看UIViewController 的文档,了解您还有哪些其他可用的魔法属性。

    【讨论】:

    • 是的,这正是我一直在尝试做的。您究竟如何访问同一个导航控制器。这意味着,您在“secondViewController.h 和 .m”文件中究竟写了什么来访问导航控制器?
    • 它是一个继承的属性。您无需向头文件添加任何内容即可访问 navigationController 属性。只需在您推送的子类视图控制器中使用 self.navigationController 行,就像答案状态一样。
    猜你喜欢
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 2014-04-13
    • 2011-04-18
    • 2015-12-23
    • 1970-01-01
    相关资源
    最近更新 更多