やあ、あそこ
私はタブバーアプリケーションを作成しています。このアプリケーションでは、最初のタブでナビゲーションを使用しているため、他のビューに移動するとすぐに他のタブに移動します。また、最初のタブに移動すると、最初のタブビューを表示したいナビゲートビューが表示されます。
どうすればこれらのことを管理できるか誰か教えてください..
私が理解しているように、TabBarControllerの最初のタブにNavigationControllerがあり、最初のタブをクリックすると、NavigationControllerをルートビューコントローラーに戻す必要があります。
まず、これはTabBarControllerのデフォルトの動作ではなく、ユーザーにとって少し煩わしいかもしれないことに注意してください。ユーザーは、タブをもう一度タップすることで、TabBarController内のNavigationControllerのルートビューに戻ることができます。
これを知っているので、TabBarControllerのデフォルトの動作を変更したい場合は、次のことができます。
AppDelegateクラスをUITabBarControllerのデリゲートに設定します。プロトコルを実装するUITabBarControllerDelegate
必要があり、次のように記述する必要があります。
[myUITabBarController setDelegate:self];
アプリケーションdidFinishLaunchingWithOptions:
メソッド内。
次に、このメソッドをAppDelegate内に実装します。
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if ([tabBarController selectedIndex] == kMyNavigationControllerIndex) {
[(UINavigationController *)[tabBarController selectedViewController] popToRootViewControllerAnimated:NO];
}
}
kMyNavigationControllerIndex
変更するNavigationViewControllerのインデックスを含む定数値はどこにありますか(つまり、最初のタブの場合は0)。
お役に立てれば。
タブベースのアプリケーションの主な目的は、すべてのビューがナビゲートされるまで保存されることです。
タブバーをタップしたときに最初のビューをそこに表示したい場合は、すべてのタブバービューで、最初のタブのビューをそのタブのルートビューコントローラーにポップするようにコーディングする必要があります。
ハッピーアイコーディング...
コードであるタブから別のタブに切り替える方法を尋ねていますか? その場合、次のようになります。
YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate tabcontroller].selectedIndex = [yourIntegerIndexHere];
「YourAppDelegate」と表示されている場合は、実際のアプリ デリゲートの名前を使用してください。
「yourIntegerIndexHere」と書かれているところは、切り替え先のタブのインデックスを持つ整数です。一番左のタブは 0 です。