Iphone UITabBarController未加载“;“更多”;ApplicationIDFinishLaunching上的视图

Iphone UITabBarController未加载“;“更多”;ApplicationIDFinishLaunching上的视图,iphone,objective-c,uitabbarcontroller,state,Iphone,Objective C,Uitabbarcontroller,State,我正在尝试恢复我的多选项卡iPhone应用程序的状态。有5个以上的选项卡,每个选项卡都有自己的导航控制器。在ApplicationIDFinishLaunching上,我确定用户的最后一个选项卡,并使用它进行设置 myTabController.selectedIndex=persistedTabIndex 然后,我调用该选项卡的根视图控制器上的一个函数来恢复自身。问题是,如果选项卡已移动到“更多”页面,则视图尚未加载,调用将消失在NIL land中。是否有方法强制相关视图控制器加载其视图 非常

我正在尝试恢复我的多选项卡iPhone应用程序的状态。有5个以上的选项卡,每个选项卡都有自己的导航控制器。在ApplicationIDFinishLaunching上,我确定用户的最后一个选项卡,并使用它进行设置

myTabController.selectedIndex=persistedTabIndex

然后,我调用该选项卡的根视图控制器上的一个函数来恢复自身。问题是,如果选项卡已移动到“更多”页面,则视图尚未加载,调用将消失在NIL land中。是否有方法强制相关视图控制器加载其视图


非常感谢您的考虑和回复。

真奇怪;如果导航控制器位于tab控制器的数组中,则无论它是否位于main 4中,当它被选中时,都应该像往常一样调用它的
-loadView
方法。您可以在创建后,但在通知选项卡控制器选择它之前,尝试手动调用
[PersistedController loadView]

我正在使用在web上找到的一些代码来保存上次加载的选项卡。在我的应用程序代理中:

- (void)applicationDidFinishLaunching:(UIApplication *)application
{   
    // .. my app set up is here

    // Select the tab that was selected on last shutdown
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSInteger whichTab = [defaults integerForKey:kSelectedTabDefaultsKey];
    self.tabBarController.selectedIndex = whichTab;
}

- (void)applicationWillTerminate:(UIApplication *)application
{
    // Save the current tab so the user can start up again in the same place.
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSInteger whichTab = self.tabBarController.selectedIndex;
    [defaults setInteger:whichTab forKey:kSelectedTabDefaultsKey];
}
以及我的接口文件中的定义:

#define kSelectedTabDefaultsKey @"SelectedTab"
除非用户重新排列选项卡,否则此操作有效,在这种情况下,您必须更新选项卡数组(索引将更改)

这是我找到代码的原始页面:


我在一个选项卡式界面上使用这段代码,该界面显示“更多…”选项卡。当我在“更多…”部分下的选项卡上退出时,当我重新启动应用程序时,界面会返回到该选项卡。接口不会在“更多…”表视图上重新启动,但我不认为这是个问题。

文档中的一个注释:在版本3之前的IOS版本中,这个属性只反映了选定的选项卡项的索引。尝试将此值设置为视图控制器的索引(该索引在选项卡栏中不可见,但由更多导航控制器管理)无效。改用myTabController.selectedViewController。