【问题标题】:iOS, Objective C Presenting NavigationController modal and adding cancel buttoniOS,Objective C 呈现 NavigationController 模式并添加取消按钮
【发布时间】:2017-04-20 12:30:29
【问题描述】:

我正在尝试展示一个视图控制器模式。所以我创建了一个新的导航控制器并调用initWithRootViewController 问题是我想在导航栏中创建一个取消按钮,但我做不到。 首先,是否可以从外部而不是在导航控制器中设置导航栏上的按钮和文本?

如果设置一个新的自定义 navigationItem 不起作用,我该怎么做?

【问题讨论】:

  • 你想做什么,这里面临什么问题?
  • 我无法在导航栏左侧显示取消文本
  • 如何添加取消按钮?
  • 您是在模态显示导航控制器,还是从导航控制器的根控制器显示第三个视图控制器?

标签: ios objective-c uinavigationcontroller


【解决方案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】:

    我自己解决了这个问题。问题是我必须在根视图控制器中设置我的取消按钮,而不是从导航控制器的外部设置。

    【讨论】:

      猜你喜欢
      • 2022-11-11
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 2018-05-29
      • 2015-10-29
      • 1970-01-01
      • 2020-08-11
      相关资源
      最近更新 更多