0

我已经成功地将一个添加rightBarButtonItem到我navigationBarViewController. 这是我当前的设置:

                -->TVC
               |
NVC--->TVC--->TVC--->VC

到目前为止,我已经UITableViewController将用于将按钮添加到子类中的代码进行了子类化和移动。我的所有 3 个TableViewControllers都设置为该子类,并且效果很好。

但是现在我需要我一个ViewController人来显示按钮,但我不知道如何在不复制我的 TVC 子类中的代码的情况下完成此操作。子类化是正确的答案还是我需要不同的方法?

编辑:

@CarlVeazey - 当然,我从 viewDidLoad 函数中调用它。

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"BETA" style:UIBarButtonItemStylePlain target:self action:@selector(betaPressed)];
4

1 回答 1

0

UIViewController对类别进行上拉重构。如果您的项目已经有一个,只需在此处添加此代码,否则在 Xcode 中按 cmd-N 创建一个新文件并选择“Objective-C Category”并UIViewController在“Category On”字段中输入。

在接口中添加此方法声明:

- (void)onfConfigureRightNavigationBarButton;

并在实现中添加此方法实现:

- (void)onfConfigureRightNavigationBarButton
{
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"BETA" 
                                                                              style:UIBarButtonItemStylePlain 
                                                                             target:self 
                                                                             action:@selector(betaPressed)];
}

然后在任何子UIViewController类中,您可以导入您的类别标题并调用此方法。您可能还希望在您的类别中添加betaPressed:.

顺便说一句,ONF 是我用于非工作编码的前缀,因此请使用项目中已有的任何前缀,或者如果您不关心类别名称冲突,则根本不使用。

于 2012-09-05T05:28:32.267 回答