の負荷デフォルト状態私はいくつかのアイデアを必要とするか、次の質問への出発点:のiOS:タブバー - タブ
私はTabBarViewで始まるアプリを持っている - いくつかのタブに接続された異なるビュー/ ViewControllersがあります並べ替えで アクティブなタブが変更された場合、このタブで最後にアクティブだったView/ViewControllerではなく、このタブの「開始」ビュー/ ViewControllerをロードする(今)オープンタブが必要です。 どうすればいいですか?
の負荷デフォルト状態私はいくつかのアイデアを必要とするか、次の質問への出発点:のiOS:タブバー - タブ
私はTabBarViewで始まるアプリを持っている - いくつかのタブに接続された異なるビュー/ ViewControllersがあります並べ替えで アクティブなタブが変更された場合、このタブで最後にアクティブだったView/ViewControllerではなく、このタブの「開始」ビュー/ ViewControllerをロードする(今)オープンタブが必要です。 どうすればいいですか?
私はあなたがUITabBarDelegate
メソッドを使用して見てお勧め:
tabBarController:didSelectViewController:
はUINavigationController
方法と組み合わせる:ユーザーがタブを選択したときに
popToRootViewControllerAnimated:
だから、あなたはナビゲーションがルートコントローラから始まることを保証することができます。コメントに反応して
EDIT:
それは理想的な状況ではないのですが、あなたはアプリのデリゲートでUITabBarControllerを参照することができます。例えば:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Get reference to Tab Bar Controller as the root view
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
// Set Delegate
tabBarController.delegate = self;
return YES;
}
あなたは、その後に似UITabBarDelegateメソッドを実装できます。
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
// Pop to root if the selected controller is a navigation controller.
if ([viewController isKindOfClass:[UINavigationController class]]) {
[((UINavigationController *)viewController) popToRootViewControllerAnimated:NO];
}
}
私もこれをテストしていません!
hm、私はタブバーアプリケーションを起動するので、ViewController.m/ViewController.hをTabBarController用に持っていません...私はTab1ViewControllerとTab2ViewControllerのファイルしか持っていません。 – jacksbox
私はいくつかの追加コードを追加する答えを編集しました。それが役に立てば幸い。 –
OK、私はそれを持っている:私は、TabBarControllerの新しいルートビューコントローラを作成し、それを自分自身を委任させます。これでne RootViewControllerのdidSelectViewControllerメソッドを呼び出すことができます。ご協力いただきありがとうございます! – jacksbox