【问题标题】:Choose between view controllers在视图控制器之间进行选择
【发布时间】:2010-11-01 00:15:47
【问题描述】:

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

我该怎么做?最优雅的方法是什么?

提前谢谢你。

【问题讨论】:

    标签: iphone cocoa-touch uiviewcontroller


    【解决方案1】:

    你有几个不同的选择。

    1. 您可以推送到 ViewController2。

      [ViewController1.navigationController pushViewController:ViewController2 动画:YES];

    2. 你可以展示 ViewController2

      [ViewController1 presentModalViewController:ViewController2 动画:YES];

    3. 您可以简单地将 ViewController1 的视图换成 ViewController2 的视图

      ViewController1.view = ViewController2.view;

    【讨论】:

    • 我尝试了第二个选项 - presentModalViewController。但在这种情况下,整个屏幕都被 ViewController2 遮住了。甚至标签栏也变得模糊不清。我怎样才能避免这种情况?
    • 呈现模态视图就是为了做到这一点。我不认为有办法解决它。如果其他人知道不同,请随时加入。
    • 我在使用#3 时遇到了一些问题。之后添加子视图似乎对我来说似乎永远无法正常工作。
    【解决方案2】:
    if (!isDatabaseLoaded)
        [self.navigationController pushViewController:ViewController2 animated:YES];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-10
      • 2012-05-09
      • 1970-01-01
      相关资源
      最近更新 更多