【发布时间】:2011-07-26 18:34:16
【问题描述】:
如果我通常加载UITabBarController 并在视图之间切换,它会调用每个视图控制器的viewWillAppear。
但事实并非如此。
我想在触摸另一个标签后立即切换到另一个标签。
如果我指定要加载的选项卡 - 例如其中一个选项卡(例如选项卡 4)的 viewWillAppear 中的 [self.tabBarController setSelectedIndex:0]... 它会立即返回到选项卡 0。
但在那之后......当我在它们之间切换时,它不会在任何选项卡上调用viewWillAppear。
例如,如果我再次转到选项卡 4,它不会返回到选项卡 0。我希望它通过一个永无止境的循环,因为我希望一旦触摸选项卡 4,选项卡 0 就会加载。
但它运行只运行一次!!
为什么??
注意:问题已被编辑。
【问题讨论】:
-
这个问题不需要任何代码。我很乐意发布代码,但用代码解释会使问题太长。这个问题很直接。
-
好的。那么你在哪里打电话给
setSelectedItem?在某些静态方法(例如applicationDidFinichLaunching)或其他地方? -
其实你提出了一个很好的观点。让我根据我的确切情况编辑问题
-
您是否检查了每个视图的
viewDidDisappear:方法?虽然我怀疑是这样,但视图可能不知道它们已经消失,因此无法再次出现。如果没有别的,它可能值得检查 -
我只能复制一半。我已经设置了两个选项卡,如果我单击第二个选项卡,我会调用
setSelectedIndex:0,它会切换到 0,并在其中调用viewWillAppear。但它只运行一次......你确定你的'0'标签上的viewWillAppear没有被调用吗?
标签: iphone objective-c cocoa-touch uitabbarcontroller selectedindex