2011-11-21 25 views
2

我目前正在使用新的iOS 5 Storyboard方法來創建帶有Monotouch的選項卡式應用程序。我用Storyboard開發了兩個在Xcode中的標籤視圖,並將它們恰當地鏈接到Tab Bar Controller。我也想開發(在Xcode中)第三個標籤視圖,它將在兩個額外的標籤之間共享。我想重複使用相同的佈局,但根據選擇哪個選項卡來顯示不同的數據(比如「Popular」和「Recent」可能具有相同的佈局但數據不同)。手動爲故事板和Monotouch添加更多選項卡到UITabController

要做到這一點,我想我可以在添加故事板驅動的標籤後兩次手動添加標籤。我如何使用Storyboard方法做到這一點?我不確定在代碼中執行此操作的位置,因爲Storyboard的加載看起來非常透明(即我看到的AppDelegate中沒有代碼)。或者,是否有另一種(更簡單/更好)的方式使用Storyboard方法在兩個標籤之間共享視圖?

回答

0

我不知道Monotouch,但這是我在Objective-c中做的。我沒有找到關於這個主題的任何內容,所以如果有什麼不對,人們請評論:)順便說一句,我使用ARC,所以我不會手動管理內存!我需要實現的就像你一樣,有一個標籤欄,加載相同的viewController,但爲每個標籤加載不同的數據。

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    UITabBarController *root = (UITabBarController*)self.window.rootViewController; 

    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil]; 

    TeamViewController *home = [[mainStoryboard instantiateViewControllerWithIdentifier:@"Team"] initHome]; 
    TeamViewController *visitor = [[mainStoryboard instantiateViewControllerWithIdentifier:@"Team"] initVisitor]; 

    [root setViewControllers:[NSArray arrayWithObjects:home, visitor, nil] animated:NO]; 

    UITabBar *tabs = root.tabBar; 
    UITabBarItem *homeTab = [tabs.items objectAtIndex:0]; 
    UITabBarItem *visitorTab = [tabs.items objectAtIndex:1]; 

    homeTab.title = @"Home team"; 
    visitorTab.title = @"Visitor team"; 

    return YES; 
} 

你可以看到我打電話initHomeinitVisitor當我加載我的兩個TeamViewController,這裏是它的代碼。

TeamViewController.h

@interface TeamViewController : UIViewController 
{ 
    enum 
    { 
     HOME, 
     VISITOR 
    }; 

    int team; 
} 

TeamViewController.m

- (id)initHome 
{ 
    team = HOME; 

    return self;  
} 

- (id)initVisitor 
{ 
    team = VISITOR; 

    return self;  
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    if(team == HOME) 
    { 
     label.text = @"home data"; 
    } 
    else if(team == VISITOR) 
    { 
     label.text = @"visitor data"; 
    } 
} 

我不知道你能如何翻譯,爲您的項目,但我希望你能大它的圖片:)

如果您需要閱讀一些關於如何訪問第一個視圖控件使用故事板:http://developer.apple.com/library/ios/#releasenotes/Miscellaneous/RN-AdoptingStoryboards/_index.html#//apple_ref/doc/uid/TP40011297 有一個部分叫做「訪問第一個視圖控制器

相關問題