1

ユーザーがタブバーアイテムをトリガーすると、表示したいモーダルビューコントローラーが表示されます。

私は何かが機能していますが、それはおそらくそれを行うための最もクリーンな方法ではありません。また、UITabBarItemが選択された状態になるのを防ぎます。

私が行ったことは、このメソッドをfalseに設定し、そのメソッド本体で(RootViewControllerを介して)ビューコントローラーを表示することです。

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{
    UINavigationController *nvc = (UINavigationController*)viewController;

TabBarItemを強調表示できるようにする、これをよりクリーンに実装するアイデアはありますか?

4

1 に答える 1

0

これは、タブ バーで MVC を使用する方法の 1 つです...そのようなタブ バー項目を強調表示するには。

id currentlySelected; //これは、選択されたビュー ID のアドレスを保持します dontAllowSelection; //これは拒否されたビューのアドレスを保持します

  • (BOOL)tabBarController:(UITabBarController *)tabBarControllers shouldSelectViewController:(UIViewController *)viewController

{

if (dontAllowSelection != nil && //nil の場合はスキップします。 dontAllowSelection == viewController) //選択されたビューが拒否された場合 return NO {

いいえを返します。

}

currentlySelected = viewController;

if (currentlySelected == someViewIWantToDisableOtherFor) //Any logic can go here to enable the Denied View.

{
    dontAllowSelection = anotherViewIWantDisabled; //Set my denied view.

}

else
{

    dontAllowSelection = nil; //Unsed the Denial.
}

return YES;

}

于 2012-08-31T05:40:32.600 に答える