【问题标题】:iOS - how to create a navigation bar item in view controller?iOS - 如何在视图控制器中创建导航栏项目?
【发布时间】:2011-08-31 18:37:05
【问题描述】:

我一直在尝试创建一个导航栏后退按钮。

这是我的代码:-

UIBarButtonItem *barButton = [[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:nil]autorelease];
self.navigationItem.rightBarButtonItem = barButton;

但它没有在导航栏上显示任何内容。

我使用的是 UIViewController,而不是 UINavigationController。

UINavigationController 是实现此目的的唯一方法吗?

任何帮助将不胜感激。

任何指向优秀教程的链接都会很棒。

谢谢。

【问题讨论】:

  • 您是否尝试创建模态视图控制器?
  • 嗨 varundroid 我也面临同样的问题。你是如何解决这个问题的。如果可能的话,请给我建议

标签: iphone ios uinavigationcontroller


【解决方案1】:

如果 viewcontroller 没有导航控制器(即 viewController.navigationController != nil),您无法以这种方式添加它。

您可以做的一件事是,如果它是由 nib 创建的,只需将条形按钮项拖到导航栏中并通过 IBAction 链接它。

【讨论】:

  • 我已经尝试过了,但无法删除它。我把它拖到了 NavigationBar 上,它就消失了,但我可以在占位符中看到它。真的很困惑这到底是怎么回事。我在我的视图中看不到它,但如果我检查占位符,它会显示它就在那里。
  • 如果您尝试添加看起来像箭头的后退按钮,可以在此处找到一些帮助:stackoverflow.com/questions/227078/…
  • 看起来不错。感谢链接人。让我试试。干杯:)
【解决方案2】:

我建议将此视图控制器从导航控制器中推出 - 您将免费获得所有这些东西:

UIViewController *vc = [[UIViewController alloc] initWithNibName:nil bundle:nil];
UINavigationController *navCntrl1 = [[UINavigationController alloc] initWithRootViewController:vc];

【讨论】:

  • 谢谢伙计,我知道托尼总有一种简单的方法,但现在我正在学习 iOS 开发,我也想努力学习。我只是在弄乱 iPhone SDK 以了解它是如何工作的。 ;)
  • 这不是一个简单的方法——在我看来它是更强大的方法,因为您将视图设置为导航控制器并获得所需的一切。祝你学习顺利!
  • 谢谢,我不知道。因为我是新手,所以我会记住它,所以每条知识对我来说都很重要。
  • 酷男。做了一个小的更正 - 有一个错字。再次祝你好运!
  • 我尝试了您的代码,并从我那里获得了出色的 +1。谢谢人:)
【解决方案3】:

如果您的视图控制器是从 Interface Builder 中的 NIB 文件创建的,并且视图控制器的设计图面上有一个导航栏,那么最简单的方法是从对象检查器中拖动一个栏按钮项右到导航栏的右侧。然后,您将在您的标头和实现中创建一个 IBAction 以供您连接。

【讨论】:

  • 我已经完成了,但它会在我的 NavigationBar 上添加一个矩形栏按钮,但我需要那个箭头,我们称之为导航项。知道怎么做吗?
【解决方案4】:

我通过直接在 UINavigationBar 中插入按钮来实现这一点:

[yourUINavBar insertSubview:yourButton atIndex:1];

【讨论】:

    【解决方案5】:

    UIViewController 的 -navigationItem 方法只能与 UINavigationController 或其他 UIViewController 容器一起使用。 您必须访问 UINavigationBar 并直接设置项目。

    【讨论】:

      【解决方案6】:

      如果您想拥有一个导航栏,并让它按您的预期工作,请使用您的 UIViewController 作为根视图控制器创建一个 UINavigationController。在你现在使用 UIViewController 的地方使用那个 UINavigationController。

      查看 developer.apple.com 上的UINavigationController 了解更多详情。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-24
        • 1970-01-01
        • 2018-09-29
        • 1970-01-01
        相关资源
        最近更新 更多