我有这个故事板:
第二个视图控制器是登录屏幕。
我检查用户是否已经登录,如果是真的,我想跳过登录屏幕并转到 tableviewcontroller。而且,另一方面,当用户未登录时,显示登录视图,当用户登录时,我希望下一个视图成为导航堆栈中的第一个视图。
现在我将 tableview 设置为根元素,此代码在其他帖子中解释
NSMutableArray *viewControllers = [NSMutableArray arrayWithArray:[self.navigationController viewControllers]];
InitialViewController *nvc = [[InitialViewController alloc] init];
[viewControllers replaceObjectAtIndex:0 withObject:nvc];
[self.navigationController setViewControllers:viewControllers];
它可以工作,但是当我想单击一个生成详细视图的单元格时,它不起作用。如果我删除登录屏幕并将表格视图设置为导航控制器中的根,它可以工作。
有谁知道为什么?
其他跳过登录视图的方法表示赞赏
编辑: 有了这个解决方案,它可以工作了,现在我有两个导航控制器,我用这个代码从一个切换到另一个
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]];
InitialViewController *initial = [storyBoard instantiateViewControllerWithIdentifier:@"appRootController"];
AppDelegate *myAppDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
myAppDelegate.window.rootViewController = initial;
我不知道这是否是正确的解决方案,但它有效。