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