视图控制器之间的选择
问题描述:
我有一个特定的UIViewController(ViewController1),它显示了数据库的内容。 我想显示另一个视图控制器(ViewController2)如果数据库之前没有加载。视图控制器之间的选择
所以当用户输入ViewController1并且数据库之前没有加载时,我想把他带到ViewController2而不是ViewController1。
事情是这样的:
@implementation ViewController1
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if (isDatabaseLoaded) {show contents of ViewController1;}
else {take user to ViewController2;}
}
我该怎么办呢?什么是最优雅的方式来做到这一点?
预先感谢您。
答
您有几个不同的选项。
-
您可以推送到ViewController2。
[ViewController1.navigationController pushViewController:ViewController2 animated:YES];
-
可以呈现ViewController2
[ViewController1 presentModalViewController:ViewController2动画:YES];
-
可以简单地换出ViewController1的视图到ViewController2
的ViewController1.view = ViewController2.view;
答
if (!isDatabaseLoaded)
[self.navigationController pushViewController:ViewController2 animated:YES];
我尝试了第二个选项 - presentModalViewController。但在这种情况下,整个屏幕被ViewController2遮蔽。甚至标签栏也被遮盖了。我怎样才能避免这种情况? – 2009-06-07 14:58:02