2010-07-25 66 views
0

我有一个程序,我们正在使用导航控制器,需要应用程序启动到两个不同的视图之一。基本上,如果先前已输入某些信息,那么我们需要应用程序启动才能查看A,但是如果信息从未输入过,那么我们需要它启动以查看B.我很难使其工作,并且想知道哪些方法如果有的话我可以实现这一点。我确定它需要在应用程序委托中完成,但我不知道如何。提前致谢!获取iPhone应用程序以显示两种不同视图之一

回答

0

从你的问题,它听起来好像你的UINavigationController是在XIB以及你的根视图控制器中定义的。在这种情况下,您需要从App Delegate的application:didFinishLaunchingWithOptions:中加载适当的视图。从那里,您可以使用setViewControllers:animated:设置UINavigationController的第一个视图控制器。

0

我遇到了这个问题并解决了它。

在你导航控制器中建立一个容器视图。

然后根据您的条件决定在容器中放置什么视图。您可能预先建立了这两个视图。然后,您可以将视图添加到容器视图中。 我认为“元素”示例有一个容器视图的例子。

1

在您的应用程序委托中实现以下方法。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{  
    [window makeKeyAndVisible]; 
    if(condition) { 
     [window addSubview:[mainViewControllerA view]]; 
    } else { 
     [window addSubview:[mainViewControllerB view]]; 
    } 
} 

在那里您可以根据自己的情况选择加载哪个视图。

+0

问题是它只有一个视图控制器,有很多不同的视图 – Chris 2010-07-28 13:45:01

+0

你如何管理UIViewController中的这些视图?您可以为每个视图创建一个属性,然后使用mainViewController.viewA,mainViewController.viewB等访问视图。 – V1ru8 2010-07-28 14:21:12

相关问题