Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.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/5/objective-c/26.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_Objective C_Uinavigationcontroller_Uinavigationbar - Fatal编程技术网

Ios 如何将后退按钮添加到UINavigationBar?

Ios 如何将后退按钮添加到UINavigationBar?,ios,objective-c,uinavigationcontroller,uinavigationbar,Ios,Objective C,Uinavigationcontroller,Uinavigationbar,用户通过一个按钮序列从上一个viewController到达此viewController,因此我希望在UINavigationBar中有一个后退按钮,允许他们返回 通常情况下,如果我在情节提要中右键单击viewController并选择了嵌入到导航控制器,默认情况下会出现此后退按钮,但这样做会导致崩溃,我更喜欢以编程方式执行操作,因此我决定在viewDidLoad中执行此操作,如下所示: // Nav bar UINavigationBar *navbar = [[UINavi

用户通过一个按钮序列从上一个viewController到达此viewController,因此我希望在
UINavigationBar
中有一个后退按钮,允许他们返回

通常情况下,如果我在情节提要中右键单击viewController并选择了嵌入到
导航控制器
,默认情况下会出现此后退按钮,但这样做会导致崩溃,我更喜欢以编程方式执行操作,因此我决定在
viewDidLoad
中执行此操作,如下所示:

    // Nav bar
    UINavigationBar *navbar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];

    // Back Button
    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style: UIBarButtonItemStyleBordered target:self action:@selector(Back)];
    self.navigationItem.leftBarButtonItem = backButton;

    [self.view addSubview:navbar];

这成功地在顶部添加了一个导航栏,但没有按预期添加“后退”按钮。我尝试过给出的解决方案,但没有一个解决了问题

您构建了一个
UINavigationBar
和一个
UIBarButtonItem
,但从未将两者连接起来

UINavigationController
为您管理一个
UINavigationBar
,并将其
topItem
设置为导航堆栈中最顶层视图控制器的
navigationItem
。如果您需要构建自己的导航栏,那么您需要自己管理它的项目堆栈。看看
UINavigationBar
的方法


然而,鉴于您似乎想要
UINavigationController
的外观和功能,我不清楚您为什么要添加
UINavigationBar
视图而不是使用该容器视图控制器。

您构建了
UINavigationBar
uibarbuttonim
,但从未构建过把两者联系起来

UINavigationController
为您管理一个
UINavigationBar
,并将其
topItem
设置为导航堆栈中最顶层视图控制器的
navigationItem
。如果您需要构建自己的导航栏,那么您需要自己管理它的项目堆栈。看看
UINavigationBar
的方法


然而,鉴于您似乎想要
UINavigationController
的外观和功能,我不清楚您为什么要添加
UINavigationBar
查看自己而不是使用容器视图控制器。

这是一个很好的观点。然后我将如何显示容器?除非我将它嵌入导航控制器,否则它不会像现在这样出现,这会导致崩溃。这是一个很好的观点。然后我将如何显示容器?除非我将它嵌入到导航控制器中,否则它不会像现在这样出现,这会导致崩溃。这正是你不应该在代码中这样做的原因,它会在视图创建时污染你的控制器,并且只会打开一扇通向笨重、行为怪异的UI的门。尽可能多地使用故事板来处理UI内容,这就是它们的用途,尽可能限制编程UI内容。这正是你不应该在代码中这样做的原因,它污染了你的控制器的视图创建,只会打开一扇通向笨拙的UI的大门,界面行为怪异。尽可能多地使用故事板的UI内容,这就是它们的用途,尽可能地限制编程UI内容。