Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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
Objective c 为什么我能做这个而不能做另一个?_Objective C_Uibarbuttonitem_Uinavigationitem - Fatal编程技术网

Objective c 为什么我能做这个而不能做另一个?

Objective c 为什么我能做这个而不能做另一个?,objective-c,uibarbuttonitem,uinavigationitem,Objective C,Uibarbuttonitem,Uinavigationitem,假设我希望后退按钮保留为@back,而不是UIViewController的标题 这会管用的 self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil]; 一个更明智的选择是这样 self.navigationItem.backBarButtonItem.title

假设我希望后退按钮保留为@back,而不是UIViewController的标题

这会管用的

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil];
一个更明智的选择是这样

self.navigationItem.backBarButtonItem.title = @"Back";
但事实并非如此


为什么?

self.navigationItem.BackBarButtonim的默认值为nil,在nil对象上调用任何函数都没有任何作用

您必须首先使用对象对其进行初始化。

最初self.navigationItem.backBarButtonItem等同于UIBarButtonItem*backBarButtonItem=nil,因此只需调用self.navigationItem.backBarButtonItem.title=@Back;意味着你正在设置不存在的UIBarbuttonite的标题。实际上,您从未将对象指定给self.navigationItem.BackBarButtonim。另外,self.navigationItem.backBarButtonim等同于[[self-navigationItem]setbackBarButtonim:uiBarButtonim];所以把@传回去是行不通的,这样做实际上会产生一个警告,我相信。您不应该能够将NSString*传递到应采用UIBarButtonItem*的参数中

而self.navigationItem.BackBarButtonim=[[uiBarButtonim alloc]initWithTitle:@Back style:uiBarButtonimStyleBorded目标:nil操作:nil];基本上等同于UIBarButtonItem*backBarButtonItem=[[UIBarButtonItem alloc]initWithTitle:@Back style:UIBarbuttonItemStyleBordeded target:nil action:nil]

老实说,我想说,像这样做

UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil];
[[self navigationItem] setBackBarButtonItem:backBarButtonItem];
这将是更好,更容易理解,但这只是我的意见。记住先初始化对象