1

我正在开发一个显示多个视图的 iPhone 应用程序,所有视图都通过选项卡栏项访问。但是,我需要向选项卡栏添加一个附加项目,它只是在 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 启动”选项卡被推到“更多”导航控制器,我将失去拦截事件并阻止在单击时加载视图的能力。

任何建议的提示?

4

2 回答 2

1

您可能会考虑让该选项卡仅显示带有网站的 UIWebView。

我第二个 glorifiedHacker 有一个标签栏项目退出应用程序并启动另一个不是预期的行为。

于 2010-03-31T17:10:49.750 回答
0

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

于 2010-03-31T17:13:46.463 回答