Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iphone自定义导航栏是否为单件?_Iphone_Singleton_Uinavigationbar - Fatal编程技术网

iphone自定义导航栏是否为单件?

iphone自定义导航栏是否为单件?,iphone,singleton,uinavigationbar,Iphone,Singleton,Uinavigationbar,我正在使用自己的自定义导航栏,但我需要在许多不同的视图中访问它,因为我需要添加按钮、更改标题等等 我应该在每次显示新视图时传递对导航栏的引用,还是将其设置为单例以便可以从任何视图访问它?将其设置为全局变量。将其设置为全局变量。是否使用UINavigationController?如果是,您可以从任何子控制器访问导航栏,如下所示: UINavigationBar *bar = self.navigationController.navigationBar; 您正在使用UINavigationCo

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


我应该在每次显示新视图时传递对导航栏的引用,还是将其设置为单例以便可以从任何视图访问它?

将其设置为全局变量。

将其设置为全局变量。

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

UINavigationBar *bar = self.navigationController.navigationBar;

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

UINavigationBar *bar = self.navigationController.navigationBar;
都不是

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

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

换言之,如果您只是出于列出的原因创建自定义导航栏,那么您的设计就是有缺陷的。我想创建自定义导航栏有一些很好的理由,但这些理由并不在其中

请考虑查看本节的内容

致以最诚挚的问候,

两者都不是

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

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

换言之,如果您只是出于列出的原因创建自定义导航栏,那么您的设计就是有缺陷的。我想创建自定义导航栏有一些很好的理由,但这些理由并不在其中

请考虑查看本节的内容


致以最诚挚的问候,

我在网上读到的一些消息说,使用全局变量并不是最好的做法,而是使用单例。如果可能的话,我将避免使用全局变量,因为它避免了封装。假设你需要做一个模态视图控制器,它必须有一个类似的导航栏。哎呀,现在两个导航控制器都将尝试使用相同的导航栏,这不会有好结果。让我更清楚地说:使用全局变量,只要使用全局变量比使用其他变量更简单。我在网上读到的东西说,使用全局变量不是最佳做法,相反,如果可能的话,使用singletonsI将避免使用全局变量,因为它避免封装。假设你需要做一个模态视图控制器,它必须有一个类似的导航栏。哎呀,现在两个导航控制器都将尝试使用相同的导航栏,这不会有好结果。让我更清楚地说:使用全局变量,只要使用全局变量比其他变量简单。