当前位置: 代码迷 >> Iphone >> 怎么在应用启动时根据条件加载不太的页面
  详细解决方案

怎么在应用启动时根据条件加载不太的页面

热度:36   发布时间:2016-04-25 05:48:16.0
如何在应用启动时根据条件加载不太的页面
楼主是想在每次应用启动时,先判断条件然后根据条件判断加载页面。

楼主想的是在根视图控制器中设置以后应用开启时的界面。例如每次应用启动时要先输入密码才可以进根视图。如果没有设置加密码进入根视图,则在应用开启时直接进入根视图。楼主想到了要用NSUserDefaults 来存储是否开启密码的状态。但是不知如何来控制应用开启时加载的页面~  求指点
------解决方案--------------------
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions    
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.rootViewController=[[VCMain alloc] init];
    [self.window makeKeyAndVisible];
}


这是应用启动后加载视图的方法,首先他会创建一个window,每个应用都会有一个window(默认只有一个,有很特殊的需求的话可以自己创建多个),所有的视图都是加载在window上的,你可以为这个windows设置一个根视图,可以是任意你自己创建的viewController,上面我就是用我自己的VCMain作为windows的根视图,最后你要让这个window作为kewindow并设置为可见(因为有可能多个,所以你要指定一下),这样视图就加载完了.

你可以在self.window.rootViewController=[[VCMain alloc] init];这句话之前根据需求做判断,可以根据判断的结果加载不同的vc,当然你也可以不运行这一句代码,这样出来的就只有一个空白的window

如果是storyBoard的话有一点点不一样,我没用过所以不是很清楚,基本差不多
------解决方案--------------------
上代码:

self.window.rootViewController=yourRootController;
NSUserDefaults default=[NSUserDefaults standardUserDefaults];
if ([default objectForKey:yourkey]) {
        [[self.window rootViewController] presentViewController:yourpasswordcontroller animated:NO completion:nil];
}

  相关解决方案