在应用开始时更改XIB视图

时间:2012-09-04 12:45:30

标签: iphone xcode

根据某些应用设置更改在应用启动时加载的XIB View的正确方法是什么。当然我知道如何获得我需要的所有设置。

1 个答案:

答案 0 :(得分:1)

在您的应用程序的委托中,在方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if(yourSettings)
     myViewController = [[MyViewController alloc] initWithNibName:@"FirstNibName" bundle:nil];
else
     myViewController = [[MyViewController alloc] initWithNibName:@"SecondNibName" bundle:nil];
self.window.rootViewController = self.myViewController;
[self.window makeKeyAndVisible];
return YES;
}

就是这样。您可能希望将设置保存为用户默认值,以便正确加载视图。

但是,我会使用2个不同的视图控制器,因为你可能希望它们做不同的事情,而不仅仅是修改一些图形。

编辑 -

让我看看我是否理解。您将始终加载第一个视图控制器,如果满足某些条件,您将模态地想要呈现第二个视图控制器,该控制器将在某个时刻被解除,将用户返回到第一个视图控制器。如果是这种情况,我建议您在第一个视图控制器中,在viewDidLoad中移动代码,或者更好地在viewDidAppear中移动代码,因为此视图控制器将始终加载。同样这样,用户可以看到他最终将转到该视图控制器。我在用户需要登录的应用程序中使用这样的东西,这样对他来说很明显,在他登录之前他不能继续。

我不能说这是正确的方法,因为这取决于程序员如何安排他的代码,但在我看来,控制什么视图及其出现的位置属于查看控制器而不是代理,特别是考虑到您的第一个视图控制器总是被加载。它应该取决于视图控制器,看它是否呈现第二个。