iPhone TabBar选择取消

时间:2010-03-31 17:00:51

标签: iphone tabbarcontroller

我正在开发一个显示多个视图的iPhone应用程序,所有视图都通过Tab Bar项目进行访问。但是我需要在Tab栏中添加一个额外的项目,只需在Safari中启动一个URL。

我通过向TabBar添加一个空的占位符视图并在单击此视图的tabBarItem时从shouldSelectViewController返回FALSE并同时启动Safari来完成此操作。

该代码是:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
 if([[viewController tabBarItem] title] == "Website"){
            //... launch Safari
  return FALSE;
 } else {
  return TRUE;
 }
}

问题:如果TabBar项目太多,并且此“Safari启动”选项卡被推送到“更多”导航控制器,我将无法拦截事件并阻止在单击时加载视图。

任何建议的提示?

2 个答案:

答案 0 :(得分:1)

您可以考虑让该标签只显示网站上的UIWebView。

我第二次荣耀哈克,因为有一个标签栏项目退出应用程序并启动另一个不是预期的行为。

答案 1 :(得分:0)

我的想法是,如果您不允许用户自定义标签栏项目,则“Safari启动”将被推送到“更多”将永远不会发生。您可以通过将标签栏的customizableViewControllers设置为nil或空数组来阻止编辑。