2011-02-14 79 views
0

你好我完全新iPhone的SDK。 我試圖建立一個應用程序,顯示一個歡迎屏幕3秒鐘,然後它切換到主應用程序屏幕,其中有一個標籤欄視圖。 我的歡迎屏幕在單獨測試時工作正常。但是在main.xib中配置UITabBarController之後,不顯示歡迎屏幕。雖然標籤欄工作正常。關於UITabBar控制器的問題

歡迎屏幕控制器我已經命名爲rootController。 在AppDeligate我有下面的代碼 -

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

    // Override point for customization after application launch.  

    RootController* rootController = [[RootController alloc] init]; 
    // [self.window insertSubview:rootController.view atIndex:4]; 
    [self.window addSubview:rootController.view]; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

歡迎屏幕上顯示我會刪除其觀點後,我希望由標籤欄的主視圖中顯示。可能的錯誤是什麼?

+0

sry其MainWindow.xib不main.xib – abhihello123 2011-02-14 15:50:09

回答

0

我解決了這個問題很整齊。我用presentModalViewController:animated:並解僱了timerDidRan:的方法。雖然我subclassed UIViewController而不是UITabBarcontroller,我覺得是更正確的。

0

我想在applicationDidFinishLaunching ...方法返回後,加載標籤欄控制器的視圖,因此它將添加到您的應用程序窗口中之後,您添加了RootController的視圖,該視圖現在位於標籤欄視圖的下方。

可以有多種方法來實現你想要的,但我會在標籤欄控制器中的viewDidLoad方法中以模態方式呈現歡迎視圖。儘管您需要爲此標籤欄視圖控制器類進行子類化,但代碼將是最容易理解的。

子類的UITabBarController,用它在筆尖文件,並覆蓋viewDidLoad中,並完成類似

[超級viewDidLoad中] //創建一個RootController對象 [self presentModalViewController:welcomeViewController animated:NO];

您會在需要時關閉模態視圖。

+0

Apple不鼓勵UITabBarController的子類。問題是RootController的nib被加載,然後主要的nib被加載,但我使用了RootController中的3secs之後運行的計時器。在這個定時器運行之前,主要的筆尖被加載,並且根控制器筆尖進入幕後。思考仍然如何以一種整潔的方式解決它。 – abhihello123 2011-02-15 05:00:56

0

最簡單的方法:將welcome視圖控制器和tabbar控制器添加到mainwindow.xib中,爲它們創建插座並將它們連接起來。

然後就表明他們兩個:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
    [window addSubview:tabBarController.view]; 
    [window addSubview:welcomeViewController.view]; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

在你welcomeViewController那麼你可以設置其觀點,3秒時隱藏起來,從窗口中刪除自身,等