Objective c 尝试将BarButtonim添加到以编程方式创建的NavigationController
在点击应用程序中的一个按钮后,我按下了嵌入导航控制器中的视图控制器。我试图在导航栏的右角添加一个保存按钮。然而,有了这段代码,它就不会出现。我的假设是,它不会显示,因为nc.navigationItem.RightBarButtonim应该放在ViewWillDisplay中。由于nc是以编程方式创建的,并且没有带有ViewWillExample的类文件,我如何才能做到这一点 这是我的密码:Objective c 尝试将BarButtonim添加到以编程方式创建的NavigationController,objective-c,Objective C,在点击应用程序中的一个按钮后,我按下了嵌入导航控制器中的视图控制器。我试图在导航栏的右角添加一个保存按钮。然而,有了这段代码,它就不会出现。我的假设是,它不会显示,因为nc.navigationItem.RightBarButtonim应该放在ViewWillDisplay中。由于nc是以编程方式创建的,并且没有带有ViewWillExample的类文件,我如何才能做到这一点 这是我的密码: - (IBAction)editProfileButtonTapped:(UIButton *)send
- (IBAction)editProfileButtonTapped:(UIButton *)sender {
FXFormViewController *vc = [[FXFormViewController alloc] init];
vc.formController.form = [[PersonalContactInfoForm alloc] init];
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:vc];
nc.navigationBar.translucent = NO;
nc.navigationBar.barTintColor = [UIColor colorWithRed:(105/255.0)
green:(210/255.0)
blue:(231/255.0)
alpha:1.0];
// WHY IS THIS BUTTON NOT BEING ADDED?
nc.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:nil];
[self presentViewController:nc animated:YES completion:nil];
}
在这里,您可以利用OOP的一个称为继承的强大功能 创建一个类,例如从FXFormViewController继承的MyFXFormViewController MyFXFormViewController.h MyFXFormViewController.m 您以前的代码应该是
- (IBAction)editProfileButtonTapped:(UIButton *)sender {
MyFXFormViewController *vc = [[MyFXFormViewController alloc] init];
vc.formController.form = [[PersonalContactInfoForm alloc] init];
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:vc];
nc.navigationBar.translucent = NO;
nc.navigationBar.barTintColor = [UIColor colorWithRed:(105/255.0)
green:(210/255.0)
blue:(231/255.0)
alpha:1.0];
[self presentViewController:nc animated:YES completion:nil];
}
UINavigationController使用当前显示的视图控制器的-navigationItem。请尝试以下方法:
vc.navigationItem.RightBarButtonim=…在FXFormViewController视图中执行此操作将出现。我没有FXFormViewController的类文件,因为它是使用我正在使用的库以编程方式创建的。我拥有的库文件是FXForms.h和FXForms.m。它是在这些文件中的某个位置创建的。我是否可以将其添加到视图中,并显示在FXForms.m中@JkmnTry vc.formController.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc]initWithTitle:@Save style:UIBarbuttonItems样式纯目标:自我操作:nil];
#import "MyFXFormViewController.h"
@implementation MyFXFormViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *saveBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:nil];
self.navigationItem.rightBarButtonItem = saveBarButton;
}
- (IBAction)editProfileButtonTapped:(UIButton *)sender {
MyFXFormViewController *vc = [[MyFXFormViewController alloc] init];
vc.formController.form = [[PersonalContactInfoForm alloc] init];
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:vc];
nc.navigationBar.translucent = NO;
nc.navigationBar.barTintColor = [UIColor colorWithRed:(105/255.0)
green:(210/255.0)
blue:(231/255.0)
alpha:1.0];
[self presentViewController:nc animated:YES completion:nil];
}