1

UITabBarControllerDelegate イベントを実装しました。

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
    if (viewController == [tabBarController.viewControllers objectAtIndex:0]) {
        //HERE:check some condition and cancel opening the viewController if needed
    }
}

上記の関数では、いくつかの条件を確認した後、ユーザーがタブ バー項目で選択した正しいビュー コントローラーを開く代わりに、アプリに何か別のこと (つまり、別のビュー コントローラーを開く) を実行させたいと考えています。イベントの動作:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

私の要求と一致しません。

4

1 に答える 1

1

から NO を返しshouldSelectViewControllerても別のタブへの遷移がキャンセルされない場合は、デリゲートまたはその他の配線が間違っています。実行中に実際に関数に到達しているかどうかを確認します。

でテストしshouldSelectViewController、NO を返し、他のビュー コントローラーを提示することは、タブ選択で他のビューを提示する正しい方法です。

于 2012-12-30T17:35:26.397 に答える