iOS,Objective C 呈现 NavigationController 模式并添加取消按钮
Posted
技术标签:
【中文标题】iOS,Objective C 呈现 NavigationController 模式并添加取消按钮【英文标题】:iOS, Objective C Presenting NavigationController modal and adding cancel button 【发布时间】:2017-04-20 12:30:29 【问题描述】:我正在尝试展示一个视图控制器模式。所以我创建了一个新的导航控制器并调用initWithRootViewController
问题是我想在导航栏中创建一个取消按钮,但我做不到。
首先,是否可以从外部而不是在导航控制器中设置导航栏上的按钮和文本?
如果设置一个新的自定义 navigationItem
不起作用,我该怎么做?
【问题讨论】:
你想做什么,这里面临什么问题? 我无法在导航栏左侧显示取消文本 如何添加取消按钮? 您是在模态显示导航控制器,还是从导航控制器的根控制器显示第三个视图控制器? 【参考方案1】:是的,您可以在导航栏顶部添加取消按钮和标题。
在导航控制器中嵌入您的视图控制器,并将 storyboadId 提供给导航控制器。然后在你想展示你想要的 VC 时添加代码在哪个类中
UINavigationController *initialNavigationController = (UINavigationController*)[self.storyboard instantiateViewControllerWithIdentifier:@"HomeNavCtrl_id"];
[self presentViewController:initialNavigationController animated:YES completion:nil];
在 viewDidLoad() 中您想要的类中添加此代码
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc]
initWithTitle:@"Flip"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(cancelButtonAction:)];
self.navigationItem.rightBarButtonItem = flipButton;
self.navigationItem.title = @"Wishlist";
取消按钮操作使用这个
- (IBAction)cancelBtnAction:(id)sender
[self dismissViewControllerAnimated:YES completion:nil];
【讨论】:
【参考方案2】:我自己解决了这个问题。问题是我必须在根视图控制器中设置我的取消按钮,而不是从导航控制器的外部设置。
【讨论】:
以上是关于iOS,Objective C 呈现 NavigationController 模式并添加取消按钮的主要内容,如果未能解决你的问题,请参考以下文章
在Objective C中,当呈现一个新场景时,如何去除旧场景?
呈现小Modal VIewController Objective C
警告“尝试呈现视图不在窗口层次结构中的 ViewController - Objective C