Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.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
Ios UINavigationBar强制标题视图在背面居中_Ios_Alignment_Uinavigationbar_Title_Back - Fatal编程技术网

Ios UINavigationBar强制标题视图在背面居中

Ios UINavigationBar强制标题视图在背面居中,ios,alignment,uinavigationbar,title,back,Ios,Alignment,Uinavigationbar,Title,Back,我已经为我的导航栏实现了一个自定义标题视图,其中包含一个图像和一个标签。通过将其原点.x设置为10像素,此视图与条形图的左侧对齐 到目前为止还不错,但当我按下视图控制器,然后返回主屏幕时,标题视图居中,而不是位于左侧 我试着将它的左键和后键设置为nil,将origin.x设置为10,但似乎没有任何效果。我尝试了viewWillAppear和viewDidAppear: CGRect frame = self.navigationItem.titleView.frame; frame.origin

我已经为我的导航栏实现了一个自定义标题视图,其中包含一个图像和一个标签。通过将其原点.x设置为10像素,此视图与条形图的左侧对齐

到目前为止还不错,但当我按下视图控制器,然后返回主屏幕时,标题视图居中,而不是位于左侧

我试着将它的左键和后键设置为nil,将origin.x设置为10,但似乎没有任何效果。我尝试了viewWillAppear和viewDidAppear:

CGRect frame = self.navigationItem.titleView.frame;
frame.origin.x = 10;
self.navigationItem.titleView.frame = frame;

self.navigationItem.backBarButtonItem = nil;
self.navigationItem.leftBarButtonItem = nil;

如何实现这一点?

首先,您应该在viewDidLoad中设置导航项(在调用[super viewDidLoad]之后),而不是viewWill/DidLoad

是否仅在第二个视图控制器上设置navigationItem,而不是在主vc上设置


如果是这样,您需要在两个视图控制器上都设置navigationItem,或者在两个视图控制器都应该子类化的基本视图控制器类中设置navigationItem。

首先,您应该在viewDidLoad中设置navigationItem(在调用[super viewDidLoad]之后),而不是viewWill/DidDisplay

是否仅在第二个视图控制器上设置navigationItem,而不是在主vc上设置


如果是这样,您需要在两个视图控制器上设置navigationItem,或者在两个视图控制器都应子类化的基本视图控制器类中设置navigationItem。

frame.origin.x=10;尝试将此添加到您的视图中。对不起。我读得很快,没有注意到代码片段前的最后一行。你有没有找到答案?我正在努力解决同样的问题。frame.origin.x=10;尝试将此添加到您的视图中。对不起。我读得很快,没有注意到代码片段前的最后一行。你有没有找到答案?我也遇到了同样的问题。在调用[super viewDidLoad]之后,我正在主视图控制器上的viewDidLoad方法中设置导航项……对于使用自定义导航标题的每个视图控制器,都需要在viewDidLoad中设置导航项。或者,在视图控制器子类的基本视图控制器中,在调用[super viewDidLoad]后,我正在主视图控制器上的viewDidLoad方法中设置导航项……对于使用自定义导航标题的每个视图控制器,都需要在viewDidLoad中设置导航项。或者,在基本视图控制器中,您的视图控制器子类