【问题标题】:iPhone TabBar selection cancellingiPhone TabBar 选择取消
【发布时间】: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 元素。

标签: iphone tabbarcontroller


【解决方案1】:

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

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

【讨论】:

  • 我同意。我正在重新设计,以便 Tab Bar 继续按预期管理视图。我将创建一个新视图,其中包含一个用于启动外部 URL 的按钮。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-24
    • 2011-06-29
    • 2023-03-22
    • 2023-03-31
    • 2017-03-17
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    相关资源
    最近更新 更多