Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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
Objective c 尝试将BarButtonim添加到以编程方式创建的NavigationController_Objective C - Fatal编程技术网

Objective c 尝试将BarButtonim添加到以编程方式创建的NavigationController

Objective c 尝试将BarButtonim添加到以编程方式创建的NavigationController,objective-c,Objective C,在点击应用程序中的一个按钮后,我按下了嵌入导航控制器中的视图控制器。我试图在导航栏的右角添加一个保存按钮。然而,有了这段代码,它就不会出现。我的假设是,它不会显示,因为nc.navigationItem.RightBarButtonim应该放在ViewWillDisplay中。由于nc是以编程方式创建的,并且没有带有ViewWillExample的类文件,我如何才能做到这一点 这是我的密码: - (IBAction)editProfileButtonTapped:(UIButton *)send

在点击应用程序中的一个按钮后,我按下了嵌入导航控制器中的视图控制器。我试图在导航栏的右角添加一个保存按钮。然而,有了这段代码,它就不会出现。我的假设是,它不会显示,因为nc.navigationItem.RightBarButtonim应该放在ViewWillDisplay中。由于nc是以编程方式创建的,并且没有带有ViewWillExample的类文件,我如何才能做到这一点

这是我的密码:

- (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];
}