2012-09-12 13 views
6

タブバーコントローラ(UIViewController)に含まれるすべてのビューをリロードする必要があります。検索の結果、setNeedsDisplayメソッドを適用する必要があることがわかりましたが、どこに適用する必要がありますか。またUIViewControllerをリロードする方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    ..... 
    ..... 

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
    [self customToolbar]; 
    [self.window addSubview:tabBarController.view]; 
    [self.window makeKeyAndVisible];  
    return YES; 
} 
-(void)customToolbar 
{ 
    //Declared view controllers and their Navigation Controller 
    ..... 

    //Declared tab bar items 
    .....  

    tabBarController = [[GTabBar alloc] initWithTabViewControllers:viewControllersArray tabItems:tabItemsArray initialTab:1]; 
} 
+0

VCをリロード/リフレッシュしたいときは? – Maulik

+0

私はいくつかのボタンアクションを入れた別のNSObjectクラスのアプリケーションデリゲートを呼び出します。ボタンが押されたらVCのリロードを行います –

答えて

4

特定のNSNotificationCenter通知名のオブザーバーとしてリフレッシュする必要があるすべてのVCを追加することですこれを行うための正しい方法を歓迎しています。 VCがこのメッセージを受け取ったら、[self setNeedsDisplay]を呼び出すセレクタを呼び出します。

NSNotificationCenterにVCを追加するには:

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

は、ビューコントローラの割り当てが解除されたときにremoveObserver:selfを呼び出すことを忘れないでください。

+0

こんにちはStavash..Whereこのメソッドを置くことはできますか?私は "ViewWillAppear"を意味しますか?私はtabbarを切り替えると、ビューカートのWebサービスを呼び出しています。私はUIViewControllerクラスを使用しています。 –

+1

ViewWillAppearは、ビューが表示されるたびに呼び出されます。これは、タブバーを切り替えるときだけでなく、ナビゲーションスタックからコントローラを押したりポップしたり、モーダルビューを表示したり消したりするときにも呼び出されます。それがあなたのニーズに合っているならば、そうでなければ何かを考える必要があります – Stavash