2009-06-07 85 views
1

我有一个特定的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;} 
} 

我该怎么办呢?什么是最优雅的方式来做到这一点?

预先感谢您。

回答

2

您有几个不同的选项。

  1. 您可以推送到ViewController2。

    [ViewController1.navigationController pushViewController:ViewController2 animated:YES];

  2. 可以呈现ViewController2

    [ViewController1 presentModalViewController:ViewController2动画:YES];

  3. 可以简单地换出ViewController1的视图到ViewController2

    ViewController1.view = ViewController2.view;

+0

我尝试了第二个选项 - presentModalViewController。但在这种情况下,整个屏幕被ViewController2遮蔽。甚至标签栏也被遮盖了。我怎样才能避免这种情况? – 2009-06-07 14:58:02

0
if (!isDatabaseLoaded) 
    [self.navigationController pushViewController:ViewController2 animated:YES]; 
相关问题