【问题标题】:Determine the first time a UIViewController appears确定 UIViewController 第一次出现的时间
【发布时间】:2011-06-15 12:05:10
【问题描述】:

在resorting to custom flags 之前,我想和你们一起检查一下。

在viewWillAppear: 或viewWillDisappear: 中是否有一种内置方法可以确定 UIViewController 是否“新推送”到 UINavigationController 的堆栈中,或者导航控制器是否弹出了另一个视图,从而显示了这个?我想在视图第一次出现时执行一些一次性代码。因为需要设置self.bounds属性,所以viewDidLoad:方法放的不对。

我希望用我使用的 determine something similar on viewWillDisappear: 得到一些结果,但在第一个 viewWillAppear: 上,索引已经设置为 1:

[self.navigationController.viewControllers indexOfObject:self]

所以这是一个无用的sn-p。有什么想法吗?

【问题讨论】:

    标签: objective-c uiviewcontroller uinavigationcontroller viewwillappear


    【解决方案1】:

    我处理这个问题的方法如下...有一个最初设置为 false 的标志,当您将子视图控制器推送到导航控制器上时,将此标志设置为 true,如果标志为 false,则在 viewDidAppear 上不设置然后它是初始加载,如果为真,那么它会从一个从导航堆栈弹出的子控制器返回。

    【讨论】:

    • 是的,这就是我希望阻止的情况。我会再等一会儿,看看是否有其他人提供更简洁的解决方案。否则就是这样。谢谢。
    【解决方案2】:

    没有内置的方法来检查它。这是detail discussionabout 您的查询。

    【讨论】:

    • 实际上,您所指的问题涉及完全不同的主题。
    猜你喜欢
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 2011-10-17
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    相关资源
    最近更新 更多