【问题标题】:How to display back button in nav app?如何在导航应用程序中显示后退按钮?
【发布时间】:2009-10-04 01:55:36
【问题描述】:

我正在基于导航的应用程序中推送表格视图。推送视图 (viewOld) 和推送视图 (viewNew) 都是 UITableViewController。我从 viewOld 给 viewNew 一个标题。一旦 viewNew 出现,我会看到标题,但左侧没有后退按钮。为视图 (viewNew) 指定标题后,不应该出现后退按钮吗?

我可以单击viewNew中导航栏左侧的空白区域,然后返回viewOld。但是为什么后退按钮不可见?我在 OS 3.0 中执行此操作,但我认为后退按钮的功能或行为与以前的版本相比没有变化。

从 viewOld 推送 viewNew:

ViewNew * viewNew = [[ViewNew alloc] initWithNibName:@"ViewNew" bundle:nil];
viewNew = @"The new view";
[self.navigationController viewNew animated:YES];
[viewNew release];

【问题讨论】:

    标签: iphone cocoa-touch iphone-sdk-3.0 uinavigationcontroller uitableview


    【解决方案1】:

    后退按钮是viewOld 的标题,除非viewOldnavigationItem 设置了backBarButtonItem,它会覆盖它。如果viewOld 没有标题并且没有设置backBarButtonItem,则不会出现返回按钮。

    请注意,如果要设置backBarButtonItem,则其targetaction 都应为nil

    【讨论】:

    • 是的 - 我没有 viewOld 的标题。我确实在 viewNew 中尝试过,但没有看到文本“Back”:self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease];任何想法为什么这不起作用?
    • backBarButtonItem 必须设置为 viewOld,而不是 viewNew。
    【解决方案2】:

    我遇到了同样的问题:后退按钮的文本被隐藏了,但是当按下左侧时它可以工作。

    于是我找到了this

    我前几天才看到这个。我发现有趣的是触摸后退按钮应该实际工作的区域。 我最终决定它与后退按钮的文本有关。它从父视图控制器的标题中提取文本。如果没有标题,则按钮没有文本,如果没有文本,Apple 似乎让它不显示按钮。所以,要么在父控制器上指定一个标题,或者如果你不想这样,我相信你可以指定后退按钮将显示的文本(这是在父视图控制器中指定的,而不是子视图控制器)。

    就是这样!

    【讨论】:

      猜你喜欢
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多