2011-09-13 7 views
5

これはXcode 3ではかなり簡単でしたが、Xcode 4では完全に失われました。* IBはまったく使用されていないようです。そして、すべてのTabBarControllerコードはコード内にあります。Xcode 4にmainwindow.xibがありません。TabBarControllerにNavigationControllerを使用する方法が分かりません

質問:TabBarControllerテンプレートを使用しているときにXcodeが生成するデフォルトコードにNavigationBarControllerを追加するにはどうすればよいですか?

手動MainWindow.xibファイルを追加することができます

答えて

6

誰かが言及したように、xibファイルを追加して、それを使用するアプリを設定できます。ここでは、いずれかの方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    UIViewController *viewController1 = [[FirstViewController alloc] init]; 
    UINavigationController *navigationController1 = [[UINavigationController alloc] initWithRootViewController:viewController1]; 
    [viewController1 release]; viewController1 = nil; 

    UIViewController *viewController2 = [[SecondViewController alloc] init]; 
    UINavigationController *navigationController2 = [[UINavigationController alloc] initWithRootViewController:viewController2]; 
    [viewController2 release]; viewController2 = nil; 

    self.tabBarController = [[UITabBarController alloc] init]; 

    NSArray *viewController = [[NSArray alloc] initWithObjects:navigationController1, navigationController2, nil]; 
    [navigationController1 release]; navigationController1 = nil; 
    [navigationController2 release]; navigationController2 = nil; 

    self.tabBarController.viewControllers = viewControllers; 
    [viewControllers release]; viewControllers = nil; 

    self.window.rootViewController = self.tabBarController; 

    [self.window makeKeyAndVisible]; 

    return YES; 
} 

これはブラウザで書かれているが、それは動作するはずに知っている、それは常に最高です、このルートを行くことに決める場合には、コードのバージョンがあります。

+0

こんにちは、両方の答えは右です。私は今のところコードルートで行くつもりです。 –

6

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
// Override point for customization after application launch. 

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil]; 

UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 

self.tabBarController = [[UITabBarController alloc] init]; 

self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil]; 

self.window.rootViewController = self.tabBarController; 

[self.window makeKeyAndVisible]; 

return YES; 

} 
- アプリに(新規ファイル]> [空のインタフェースビルダー文書)、その後は、あなたが「メインnibファイルのベース名」と呼ばれるキーを追加し、それはだ設定で​​きるのInfo.plist値を "MainWindow"に設定します。

アプリケーションデリゲートで、ウィンドウとUINavigationControllerをIBOutletsとして設定し、それらを生成するコードを削除します。次に、MainWindow.xibファイルに、アプリケーションデリゲート、UINavigationController、およびWindowのインスタンスを追加します。 UINavigationControllerとWindowをデリゲートのアウトレットに接続します。