2012-01-11 129 views
0

我想知道如何在第一次启动应用程序时显示页面,我为这些代码提供了serch,并获得了许多代码,但在我的情况下,它并不适合我,我在DidFinishLaunching方法中使用此代码,如何在首次启动应用程序时显示UIViewController?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES],@"firstLaunch",nil]]; 

    //If First Launch 
    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) { 
     //Show help view 
     UIScrollView_PagingViewController *detailViewController = [[UIScrollView_PagingViewController alloc] initWithNibName:@"UIScrollView_PagingViewController" bundle:nil]; 

     //detailViewController.firstString = firstString; 
     // ... 
     // Pass the selected object to the new view controller. 

     [self.navigationController pushViewController:detailViewController animated:YES]; 

     [detailViewController release]; 

    } 
    else { 
    NSError *error = nil; 
    NSString *username = [[NSUserDefaults standardUserDefaults] objectForKey:@"username"]; 
    NSString *str = [SFHFKeychainUtils getPasswordForUsername:username andServiceName:@"mybibleapp" error:&error]; 
    NSLog(@"previous user"); 

    NSLog(@"%@", str); 

    if (!error && nil != str) 
    { 
     ParallelReadViewController *detailViewController = [[ParallelReadViewController alloc] initWithNibName:@"ParallelReadViewController" bundle:nil]; 

     //detailViewController.firstString = firstString; 
     // ... 
     // Pass the selected object to the new view controller. 

     [self.navigationController pushViewController:detailViewController animated:YES]; 

     [detailViewController release]; 
    } 
    else 
    { 
     RootViewController *detailViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil]; 

     //detailViewController.firstString = firstString; 
     // ... 
     // Pass the selected object to the new view controller. 

     [self.navigationController pushViewController:detailViewController animated:YES]; 

     [detailViewController release]; 
    } 
} 

但是当我运行这段代码时,它显示一个空白的白色屏幕,没有任何显示。

[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES],@"firstLaunch",nil]]; 

     //If First Launch 
     if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) { 
      //Show help view 
      UIScrollView_PagingViewController *detailViewController = [[UIScrollView_PagingViewController alloc] initWithNibName:@"UIScrollView_PagingViewController" bundle:nil]; 

      //detailViewController.firstString = firstString; 
      // ... 
      // Pass the selected object to the new view controller. 

      [self.navigationController pushViewController:detailViewController animated:YES]; 

      [detailViewController release]; 

     } 
     else { 

我把上面的代码发射升空UIScrollView_PagingViewController推出。但没有luck.What是我在上面code.?.please所犯的错误,帮助我。 在此先感谢。

回答

0

您并未将代码放置在正确的位置。不要将此代码放在AppDelegate中,尽可能保持您的appdelegate尽可能干净,以便获得更好的@performance。使用一些ViewController,它将在启动屏幕后得到调用,并检查你的代码是否在那里工作。

0

您试图在第一次推动该控制器,但在roo没有任何控制器。所以你必须先在窗口中添加。那么你可以推UIViewController

self.window.rootViewController = detailViewController.view; 

在使用前不要释放viewController。

0

试试这个

 if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) 
    { 

    UIScrollView_PagingViewController *detailViewController =[[UIScrollView_PagingViewController alloc] initWithNibName:@"UIScrollView_PagingViewController" bundle:nil]; 

        //detailViewController.firstString = firstString; 
        // ... 
        // Pass the selected object to the new view controller. 

    self.navController=[[UINavigationController alloc] initWithRootViewController:detailViewController]; 
    self.window.rootViewController=self.navController; 

       } 
0

只是做一个trcik, 不要把这个代码在AppDelegate中尽量保持你的appdelegate尽可能干净有更好的表现。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    [window addSubview:navigationController.view]; 
    [window makeKeyAndVisible]; 

    return YES; 
} 

而将此代码放在你RootViewController的 每次当应用程序将得到启动,它检查委托方法的条件,而不是将检查RootViewController的。

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:YES]; 
[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES],@"firstLaunch",nil]]; 

    //If First Launch 
    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) { 
     //Show help view 
     UIScrollView_PagingViewController *detailViewController = [[UIScrollView_PagingViewController alloc] initWithNibName:@"UIScrollView_PagingViewController" bundle:nil]; 

     //detailViewController.firstString = firstString; 
     // ... 
     // Pass the selected object to the new view controller. 

     [self.navigationController pushViewController:detailViewController animated:NO]; 

     [detailViewController release]; 

    } 
    else { 
    NSError *error = nil; 
    NSString *username = [[NSUserDefaults standardUserDefaults] objectForKey:@"username"]; 
    NSString *str = [SFHFKeychainUtils getPasswordForUsername:username andServiceName:@"mybibleapp" error:&error]; 
    NSLog(@"previous user"); 

    NSLog(@"%@", str); 

    if (!error && nil != str) 
    { 
     ParallelReadViewController *detailViewController = [[ParallelReadViewController alloc] initWithNibName:@"ParallelReadViewController" bundle:nil]; 

     //detailViewController.firstString = firstString; 
     // ... 
     // Pass the selected object to the new view controller. 

     [self.navigationController pushViewController:detailViewController animated:NO]; 

     [detailViewController release]; 
    } 
    else 
    { 
     // RootViewController *detailViewController = [[RootViewController alloc] //initWithNibName:@"RootViewController" bundle:nil]; 

     //detailViewController.firstString = firstString; 
     // ... 
     // Pass the selected object to the new view controller. 

     // [self.navigationController pushViewController:detailViewController //animated:NO]; 

     //[detailViewController release]; 
    } 
} 
相关问题