iphone定制导航吧单身还是不行?

时间:2009-10-27 14:28:01

标签: iphone singleton uinavigationbar

我正在使用自己的自定义navigationBar,但我需要在许多不同的视图中访问它,因为我需要添加按钮,更改标题等等。

每次我显示新视图时,是否应该将引用传递给我的navigationBar,或者只是将其设为单例,以便我可以从任何视图访问它?

3 个答案:

答案 0 :(得分:3)

都不是。

您已经列出了添加按钮和更改标题作为您需要自定义工具栏的原因,但这两件事都可以通过导航控制器完成,无需创建自己的工具,因此无需创建单例或全局变量。

当您按下新的视图控制器时,只需调用[self setTitle:@“Nav Title”]即可设置导航栏的标题;在该视图控制器的-viewDidLoad中。如果您需要添加按钮,请使用以下代码(也在-viewDidLoad中):

[[self navigationItem] setRightBarButtonItem:[[[UIBarButtonItem alloc]
        initWithBarButtonSystemItem:UIBarButtonSystemItemEdit 
                             target:self 
                             action:@selector(setEditing)] autorelease]];

换句话说,如果您出于自己列出的原因创建自定义导航栏,则您的设计存在缺陷。我想有一些很好的理由来创建自定义导航栏,但这些不在其中。

请考虑查看Configuring the Navigation Item ObjectView Controller Programming Guide for iPhone OS部分。

致以最诚挚的问候,

答案 1 :(得分:2)

您使用的是UINavigationController吗?如果是这样,您可以从任何子控制器访问导航栏,如下所示:

UINavigationBar *bar = self.navigationController.navigationBar;

答案 2 :(得分:0)

将其设为全局变量。