私はUITabBarController
のビューを5つ持っています。そのうちの1つはUINavigationController
です。UITabBarControllerのUINavigationController - タブ選択のトップに戻る
UINavigationController
を含むタブを選択して、UINavigationController
のトップビューに移動することをいつでも確認できますか?
私はUITabBarController
のビューを5つ持っています。そのうちの1つはUINavigationController
です。UITabBarControllerのUINavigationController - タブ選択のトップに戻る
UINavigationController
を含むタブを選択して、UINavigationController
のトップビューに移動することをいつでも確認できますか?
UITabViewController
クラスはありません。私はあなたがUITabBarController
を意味すると仮定します。
UITabBarController
の代理人を設定してください。デリゲートにナビゲーションコントローラへの参照を渡します。たとえば、多分あなたは、タブバーコントローラのデリゲートとしてアプリケーションデリゲートを使用します。
@interface AppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate>
@property (nonatomic, weak) IBOutlet UINavigationController *theNavigationController;
あなたはペン先やコードのいずれかで、プロパティをフックにしてください。
@implementation AppDelegate
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if (viewController == self.theNavigationController) {
[self.theNavigationController popToRootViewControllerAnimated:NO];
}
}
はUITabBarViewContoller
のデリゲートを、そしてそれはあなたのUINavigationController
呼び出すようにそのtabBarController:didSelectViewController:
を実装 'を設定UINavigationController
が選択されている場合popToRootViewControllerAnimated:
秒。
代わりの理由 '[ViewControllerをisKindOfClass:[UINavigationControllerクラス]で選択のViewControllerの種類をチェックしない、基準との比較:'は、型キャストを 次に、デリゲートでは、
tabBarController:didSelectViewController:
メソッドをオーバーライド結果に 'popToRootviewController'を実行していますか? – Tillおっと、私のタイトルを修正しました。 – Baub
@私は質問に合った答えを出しました。それには長所と短所があります。 –