2011-09-13 5 views
5

Điều này khá dễ dàng trong Xcode 3. Nhưng tôi hoàn toàn bị mất trong Xcode 4. * Có vẻ như IB không được sử dụng ở tất cả. Và tất cả các mã TabBarController là trong mã.Không có mainwindow.xib trong Xcode 4 Nhầm lẫn cách để có TabBarController của tôi sử dụng một NavigationController

Câu hỏi: Làm cách nào để thêm một NavigationBarController vào mã mặc định Xcode tạo khi sử dụng mẫu TabBarController?

- (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; 

} 

Trả lời

6

Vì ai đó đã đề cập đến bạn có thể thêm tệp xib cấu hình ứng dụng để sử dụng. Dưới đây là phiên bản mã trong trường hợp bạn quyết định đi tuyến đường này nó luôn luôn tốt nhất để biết một trong hai cách

- (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; 
} 

này được viết trong trình duyệt nhưng nó phải làm việc.

+0

Xin chào, WOW cả hai câu trả lời đều đúng. Tôi đang đi với các tuyến đường mã cho bây giờ. –

6

Bạn có thể thêm một file MainWindow.xib bằng tay (New File -> tài liệu xây dựng giao diện Trống) và sau đó trong ứng dụng của bạn info.plist bạn có thể thêm một phím gọi là "Main tập tin nib tên cơ sở" và thiết lập nó giá trị cho "MainWindow".

Trong ủy nhiệm ứng dụng của bạn, đặt cửa sổ và UINavigationController là IBOutlets và xóa mã tạo ra chúng. Sau đó, trong tệp MainWindow.xib của bạn thêm một thể hiện của ủy nhiệm ứng dụng, UINavigationController và một cửa sổ. Kết nối UINavigationController và Window với các cửa hàng của đại biểu.