Skip to content

UIViewController内から、UITabBarControllerの管理する、他のコントローラにアクセスする方法

2012年1月23日

試行錯誤してたらできちゃったのでメモ。
まず、selfのtabBarController.viewControllersにアクセス。
そこでタブの管理するコントローラにアクセスできる。

ほんで、それぞれのビューのクラスを得ればいいんだけど、この時に僕は、全部NavigationControllerを使っていたので、またViewControllersを引っ張り出してそこでクラス名を引っ張り出す感じになった。

あとは煮るなり焼くなりできる。
今回はtabBarItemのenabledをいじった。
やー、これでタブ操作の幅が広がるなー。

    NSArray *tabControlers = [NSArray arrayWithArray:self.tabBarController.viewControllers];
    for (int i = 0; i < [tabControlers count]; ++i) {
        NSString *classStr = NSStringFromClass([[[[tabControlers objectAtIndex:i] viewControllers] objectAtIndex:0] class]);
        if ([classStr isEqualToString:@"SimpleWebBrowserViewController"]) {
            NSLog(@"%@",classStr);
            webBro_ = [[[tabControlers objectAtIndex:i] viewControllers] objectAtIndex:0];
            webBro_.tabBarItem.enabled = NO;
        }
    }
広告

From → iPhone開発

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。