0

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

4

1 回答 1

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 中,因为此视图控制器将始终被加载。同样通过这种方式,用户可以看到他最终会转到该视图控制器。我在用户需要登录的应用程序中使用类似的东西,这样对他来说很明显他在登录之前无法继续。

我不能说这是正确的做法,因为这取决于程序员如何安排他的代码,但在我看来,控制视图及其显示方式的地方属于视图控制器和不在委托中,特别是考虑到您的第一个视图控制器总是被加载。应该由该视图控制器来查看它是否呈现第二个。

于 2012-09-04T14:29:28.653 回答