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
.2つをロード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「最初のView Controllerへのアクセス
」というセクションがあります