我正在开发一个显示多个视图的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启动”选项卡被推送到“更多”导航控制器,我将无法拦截事件并阻止在单击时加载视图。
任何建议的提示?
答案 0 :(得分:1)
您可以考虑让该标签只显示网站上的UIWebView。
我第二次荣耀哈克,因为有一个标签栏项目退出应用程序并启动另一个不是预期的行为。
答案 1 :(得分:0)
我的想法是,如果您不允许用户自定义标签栏项目,则“Safari启动”将被推送到“更多”将永远不会发生。您可以通过将标签栏的customizableViewControllers设置为nil或空数组来阻止编辑。