2014-04-01 33 views
0

這是我在Stackoverflow上的第一篇文章,所以我想說「你好」。原諒我我的英語不好:) 我在Stackoverflow上閱讀了很多線程來解決我的問題,但我是一個總的初學者,所以我無法讓我的應用程序像我想要的那樣工作。在應用啓動時顯示ViewController

如果應用程序第一次啓動,我想要呈現動畫的模態視圖控制器 - 如果不是,則不應顯示「前視視圖」。

我有Xcode 5 + iOS7模擬器。 「Main.storyboard」文件中有兩個ViewController。其中之一「是初始視圖控制器」。

我發現做出來的東西的方式,如果應用程序啓動的第一次,然後將其同步到設置(在「AppDelegate.m」文件):

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    { 
     // Override point for customization after application launch. 
     UIColor *tintColor = [UIColor colorWithRed:137/255.0f green:116/255.0f blue:62/255.0f alpha:1.0]; 
     [[UIButton appearance] setTintColor:tintColor]; 
     [[UISegmentedControl appearance] setTintColor:tintColor]; 
     [[UIAlertView appearance]setTintColor:tintColor]; 

     BOOL ranBefore = [[NSUserDefaults standardUserDefaults] boolForKey:@"ranBefore"]; 
     if (!ranBefore) { 

      //////DISPLAY SECOND (not "is initial view controller") VIEW CONTROLLER HERE\\\\\\ 

      [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"ranBefore"]; 
      [[NSUserDefaults standardUserDefaults] synchronize]; 
     } 

     return YES; 
    } 

我如何去做?就像我說的,即使從其他帖子複製粘貼也不能解決我的問題(我是一個begginer:P)。您能否爲我做一個可用的Xcode項目並通過我的電子郵件地址發送?

回答

0

我只需要在故事板文件中創建一個segue(從一個視圖到另一個視圖),給它一個標識符「goToTutorial」,然後在「MainViewController」中。m「文件(這是最初的視圖控制器的類)我必須實現viewDidAppear方法(當我試圖在」viewDidLoad「中做到這一點時,我遇到了一個錯誤:」警告:試圖提出誰的觀點不是在窗口層次 「):

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
} 

並執行賽格瑞(iside的viewDidAppear):

[self performSegueWithIdentifier:@"goToTutorial" sender:self]; 

,所以它看起來是這樣的:

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 

    BOOL ranBefore = [[NSUserDefaults standardUserDefaults] boolForKey:@"ranBefore"]; 
    if (!ranBefore) { 
     [self performSegueWithIdentifier:@"tutorialView" sender:self]; 
     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"ranBefore"]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
    } 
} 
0

你可以用一些代碼來做到這一點,就像我給了一個樣本。

您應該在使用該代碼之前更改以下內容。

  • DefaultViewController:您默認視圖控制器類。
  • InitialViewController:您的初始視圖控制器類,其中實例將只顯示一次。
  • InitialViewControllerIdentifier:標識符名稱(或故事板ID)爲您的初始視圖控制器屏幕在情節串連圖板。
  • 您應該未設置UIMainStoryboardFile您的應用程序信息plist文件中的關鍵。您也可以從Xcode:目標 - >常規選項卡 - >部署信息部分 - >主界面
  • - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    { 
        // Override point for customization after application launch. 
        UIColor *tintColor = [UIColor colorWithRed:137/255.0f green:116/255.0f blue:62/255.0f alpha:1.0]; 
        [[UIButton appearance] setTintColor:tintColor]; 
        [[UISegmentedControl appearance] setTintColor:tintColor]; 
        [[UIAlertView appearance]setTintColor:tintColor]; 
    
        UIStoryboard * myStoryboard = [UIStoryboard storyboardWithName:@"StoryboardName" bundle:nil]; 
    
        BOOL ranBefore = [[NSUserDefaults standardUserDefaults] boolForKey:@"ranBefore"]; 
        if (!ranBefore) 
        { 
         InitialViewController * initialViewController = [myStoryboard instantiateViewControllerWithIdentifier:@"InitialViewControllerIdentifier"]; 
         [self.window setRootViewController:initialViewController]; 
    
         [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"ranBefore"]; 
         [[NSUserDefaults standardUserDefaults] synchronize]; 
        } 
        else 
        { 
         DefaultViewController * defaultViewController = [myStoryboard instantiateInitialViewController]; 
         [self.window setRootViewController:defaultViewController]; 
        } 
    
        return YES; 
    } 
    

    P.S:您還可以使用UIStoryboardSegue的呈現工作。您可以在以下網址找到文檔:https://developer.apple.com/library/ios/documentation/uikit/reference/UIStoryboardSegue_Class/Reference/Reference.html

    編輯:代碼和說明根據註釋更新。

    +0

    2014年4月2日19:00:07.140 Smieci UI2 [661:60b]未知類在Interface Builder文件中Main。 2014-04-02 19:00:07.143 SmieciUI2 [661:60b]警告:嘗試在上呈現,其視圖不在窗口層次結構中! 即控制檯輸入,我仍然無法得到它的工作? – raqall

    +0

    爲故事板文件中的主視圖控制器的Identity Inspector(左起第三個選項卡)中的類字段所寫的內容是什麼? – ismailgulek

    +0

    「MainViewController」 – raqall

    0

    您可以進入故事板並選擇您想在應用啓動時首先顯示的視圖控制器。選擇所需的視圖控制器後,單擊屬性檢查器並向下滾動以找到「是初始視圖控制器」選項,並單擊它以在應用程序啓動時顯示該選項。另一種選擇是進入故事板,並且會有一個指向視圖的箭頭。它不會與任何東西連接。它將指向一個視圖。您可以拖動該箭頭,並將其放在您想先加載的視圖旁邊。

    相關問題