2012-03-31 8 views
2

現在、私はすべてのビューコントローラに関連付けられている4つの項目を持つUITabBarControllerを持っています。私は、新しいビューコントローラには行かないがSafariでウェブサイトを起動する5番目のタブバー項目を追加したいと思う。本質的に、UIButtonのように機能します。UITabBarControllerからWebサイトを開く

ので、動作は次のようになります。

ユーザー(タブ5が一瞬青に変わり)タブにタブ5 1.
ユーザーがクリックです。
ビューは変更されません。
サイト
ユーザーがアプリに戻り、彼らはまだタブ1(タブ1が青である)である

任意のアイデア(私はこの部分を行う方法を知っている)Safariで開きますか?

現在、私のUITabBarControllerは(localControllerArrayは4 UINavigationControllersの配列である。)このようにセットアップされている:

tabBarController.viewControllers = localControllersArray; 
[localControllersArray release];  
[self.window setRootViewController:tabBarController]; 
[tabBarController release]; 

答えて

2

あなたはUITTabBarControllerは、デリゲートのプロパティを持っているか知っていますか? UITabBarControllerDelegateプロトコルを実装するオブジェクトを作成し、それをデリゲートとして設定します。次に、いずれかのタブを選択すると、デリゲートのtabBarController:didSelectViewController:が呼び出されます。その中に5番目のタブがタップされているかどうかを確認することができます。その場合は、tabbarcontrollerのselectedIndexプロパティを必要なものに設定するだけです。それでおしまい。

PS実際には、tabBarController:shouldSelectViewController: に電話するだけで、ビューが切り替わらないようにする必要があります。

+0

魅力的な作品です。ありがとう。 – Joel

0
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController; 
switch(mytabbar.selectedIndex) 
{ 
case 0: 
    [imageView1 setImage:[UIImage imageNamed:@"Tab1_sel.png"]]; 
    [imageView2 setImage:[UIImage imageNamed:@"Tab2.png"]]; 
    [imageView3 setImage:[UIImage imageNamed:@"Tab3.png"]]; 
    [imageView4 setImage:[UIImage imageNamed:@"Tab4.png"]]; 
    [imageView5 setImage:[UIImage imageNamed:@"Tab5.png"]]; 
    break; 

case 1: 

私はそれを試してみてください...それをappdelegateメソッドに入れてください。

関連する問題