【发布时间】:2010-03-31 17:00:51
【问题描述】:
我正在开发一个 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 启动”选项卡被推到“更多”导航控制器,我将无法拦截事件并阻止在单击时加载视图。
有什么建议吗?
【问题讨论】:
-
我的建议是你不要那样使用 TabBar。这与用户期望的 TabBar 项的行为不一致。以用户熟悉的方式使用熟悉的 UI 元素。