【View Controller】Configuring the Initial View Controller at Launch

来源:互联网 发布:液流电池 知乎 编辑:程序博客网 时间:2024/05/23 13:24

If you define a main storyboard in your project, iOS automatically does a lot of work for you to set up your app.When your app calls theUIApplicationMainfunction, iOS performs the following actions:

  1. It instantiates the app delegate based on the class name you passed into theUIApplicationMainfunction.

  2. It creates a new window attached to the main screen.

  3. If your app delegate implements awindowproperty, iOS sets this property to the new window.

  4. It loads the main storyboard referenced in the app’s information property list file.

  5. It instantiates the main storyboard’s initial view controller.

  6. It sets the window’srootViewControllerproperty to the new view controller.

  7. It calls the app delegate’sapplication:didFinishLaunchingWithOptions:method. Your appdelegate is expected to configure the initial view controller (and its children, if it is a container viewcontroller).

  8. It calls the window’smakeKeyAndVisiblemethod to display the window. 



    The app delegate configures the controller

    <span style="font-size:18px;">- (BOOL)application:(UIApplication *)application  didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  {UINavigationController *navigationController = (UINavigationController*)  self.window.rootViewController;      BirdsMasterViewController * firstViewController = [[navigationController  viewControllers] objectAtIndex:0];      BirdSightingDataController *dataController = [[BirdSightingDataController  alloc] init];      firstViewController.dataController = dataController;return YES; }</span>



    Creating the window when a main storyboard is not being used 


    <span style="font-size:18px;">- (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions{self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard"bundle:nil];    MainViewController *mainViewController = [storyboardinstantiateInitialViewController];    self.window.rootViewController = mainViewController;    // Code to configure the view controller goes here.    [self.window makeKeyAndVisible];return YES; }</span>


0 0
原创粉丝点击