2010-12-06 6 views
0

Xcodeを使って2つのビューとしてタブバーアプリケーションを作成しました。Prebuilt UITabBarControllerを使用して別のビューにデータを送信しますか?

セカンダリビューはUITableViewControllerです。

私がしなければならないのは、2番目のタブが押されたときにこのビューにデータを送信することです。私はAppDelegateクラスにタブバーを委任して、この機能を実装しました:

-(void)tabBarController:(UITabBarController*)tabBarController didSelectViewController:(UIViewController*)viewController 
{ 
    // Override point for customization after application launch. 
    statisticsViewController* assignmentListcont = [statisticsViewController alloc]; 

    NSManagedObjectContext* context = [self managedObjectContext]; 

    assignmentListcont.managedObjectContext = context; 

    [assignmentListcont release]; 

} 

2番目のビューは、細かい表示されますが、データが渡されていません。私は2番目のビューの移行をプログラムしていないので、私はそれを想像するが、私はすでに.xibファイルを持っている場合、これを行う方法がわからない。問題なくデータを渡すか、ビュー内で一度データを取得するだけの方法はありますか?

答えて

0

通知を使用できます。あなたがデータを受信したいビューで

viewDidLoadでこれを置く:

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(yourSelector:) 
             name:@"addedData" 
             object:nil]; 

次に、そのデータを受信する方法を実装:データのクラスに今

- (void)yourSelector:(NSNotification *)notification { 
     Foo *foo; 
    foo = [notification object]; 
    //do something else 
} 

を新しいデータが作成されたという通知を送信します。また、他のメソッドが受け取るデータを渡します。

​​
+0

感謝を役に立てば幸い、最後に私は、httpからグローバルデリゲートメソッドを使用しました:/ /cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html – Demonofloom

+0

問題ありません!最高の成功をお祈りします。 :) –

0

私は別のビューコントローラから値を送信するためにこれをやったが、それはあなたの答えのために

UITabBarViewController *var = [self.storyboard instantiateViewControllerWithIdentifier:@"name"]; //I select the UITabBarController 
otherViewController *var2 = [var.childViewControllers objectAtIndex:0]; //I Select the first ViewController from that UITabBarController 
var2.variable = @"value"; 
[self.navigationController pushViewController:var animated:YES]; 
関連する問題