0

やあ、あそこ

私はタブバーアプリケーションを作成しています。このアプリケーションでは、最初のタブでナビゲーションを使用しているため、他のビューに移動するとすぐに他のタブに移動します。また、最初のタブに移動すると、最初のタブビューを表示したいナビゲートビューが表示されます。

どうすればこれらのことを管理できるか誰か教えてください..

4

3 に答える 3

0

私が理解しているように、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)。

お役に立てれば。

于 2010-12-30T09:44:08.200 に答える
0

タブベースのアプリケーションの主な目的は、すべてのビューがナビゲートされるまで保存されることです。

タブバーをタップしたときに最初のビューをそこに表示したい場合は、すべてのタブバービューで、最初のタブのビューをそのタブのルートビューコントローラーにポップするようにコーディングする必要があります。

ハッピーアイコーディング...

于 2010-12-30T08:58:09.967 に答える
0

コードであるタブから別のタブに切り替える方法を尋ねていますか? その場合、次のようになります。

YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];

[appDelegate tabcontroller].selectedIndex = [yourIntegerIndexHere];

「YourAppDelegate」と表示されている場合は、実際のアプリ デリゲートの名前を使用してください。

「yourIntegerIndexHere」と書かれているところは、切り替え先のタブのインデックスを持つ整数です。一番左のタブは 0 です。

于 2010-11-22T05:28:22.760 に答える