我不知道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;
}
你可以看到我打電話initHome
和initVisitor
當我加載我的兩個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 有一個部分叫做「訪問第一個視圖控制器」