Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在应用程序启动时更改XIB视图_Iphone_Xcode - Fatal编程技术网

Iphone 在应用程序启动时更改XIB视图

Iphone 在应用程序启动时更改XIB视图,iphone,xcode,Iphone,Xcode,根据某些应用程序设置,更改在应用程序启动时加载的XIB视图的正确方法是什么。当然,我知道如何获取所需的所有设置。在应用程序的委托中,在方法中 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { if(yourSettings) myViewController = [[MyViewController alloc] i

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

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

- (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;
}
就这样。您可能希望以用户默认值保存设置,以便正确加载视图

但是,我会使用两个不同的视图控制器,因为您可能希望它们执行不同的操作,而不仅仅是修改一些图形

编辑-

让我看看我是否明白。您将始终加载第一个视图控制器,如果满足某些条件,您可能希望显示第二个视图控制器,该控制器将在某个时候被解除,并将用户返回到第一个视图控制器。如果是这种情况,我建议您将代码移动到第一个视图控制器中,在viewDidLoad中,或者更好的是在ViewDidDisplay中,因为此视图控制器将始终被加载。同样,通过这种方式,用户可以看到他最终将转到该视图控制器。我在用户需要登录的应用程序中使用了类似的东西,这样,在用户登录之前,他显然无法继续


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

目前如何在应用程序启动时加载xib?是否使用两个xib视图?或者只有一个,而你只想在应用程序启动时修改xib的元素?那么为什么不使用
if
语句呢?现在我无法提供代码,只是几个小时后。但我使用默认方法加载它,这种方法在“基于视图的应用程序”中使用。是的,我提出了一个有点奇怪的问题。在didFinishLaunchingWithOptions中:self.window=[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds];self.firstViewController=[[firstViewController alloc]initWithNibName:@“firstViewController”bundle:nil];self.window.rootViewController=self.firstTableViewController;[self.window makeKeyAndVisible];如果(mySettings){self.secondViewController=[[secondViewController alloc]initWithNibName:@“secondViewController”捆绑包:nil];self.secondViewController.ModAltTransitionStyle=UIModAltTransitionStyleCoverVertical;[self.FirstViewController我确实使用不同的视图控制器::)