【问题标题】:iPhone: Is it possible to have an 'info'-button in all views in my app?iPhone:是否可以在我的应用程序的所有视图中都有一个“信息”按钮?
【发布时间】:2011-03-12 05:49:29
【问题描述】:

如标题所述,我该如何实现这样的功能?

我正在使用下面的代码(在我的 viewDidLoad 中)来获取主视图的导航控制器上的按钮。

UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];

[infoButton addTarget:self action:@selector(viewWillAppear:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];

不确定如何在所有视图中显示它。

【问题讨论】:

    标签: iphone xcode uiview uinavigationcontroller uibutton


    【解决方案1】:

    推送到导航堆栈的每个视图都有自己的导航栏。因此,恐怕您必须在创建视图时以及将此视图推送到导航堆栈之前将此按钮添加到每个导航栏。

    【讨论】:

    • UINavigationController 只使用了一个UINavigationBar,但堆栈中的每个UIViewController 都有自己的UINavigationItem,其中定义了标题和栏按钮项。
    【解决方案2】:

    您可以简单地向窗口添加一个信息按钮,而不是为每个视图控制器创建一个新按钮。由于窗口永远不会改变,因此按钮将始终显示在屏幕上。您只需注意按钮顶部没有其他视图。

    【讨论】:

    • 嗨,茹荷。谢谢你的帖子。我试过你说的。但是,我无法让它工作。我的窗口调用(通过委托文件中的代码)一个使用标签栏的视图。知道为什么它不起作用吗?
    【解决方案3】:

    我建议你创建一个基本视图控制器,并将条形按钮添加到 viewDidLoad 中的 navigationItem。然后你的所有视图控制器都是从基本控制器继承的,而不是默认的 UIViewController。这应该可以解决您的问题。

    【讨论】:

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