1

我有这段代码可以让我创建一个自定义 UIBarButton,它位于我的 viewDidLoad 中。

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
                                                               style:UIBarButtonItemStyleDone
                                                              target:nil
                                                              action:nil];
    self.navigationItem.rightBarButtonItem = doneButton;

现在,我希望在按下 UIBarButton 时调用下面的此方法,以便完成对下一个视图控制器的 segue。

- (void) didPressDone {

    PointsResultsViewController *pointsResults = [self.storyboard instantiateViewControllerWithIdentifier:@"resultsPointsVC"];

    [self.navigationController pushViewController:pointsResults animated:YES];
}

我已经对此进行了一些研究。然而,我看到的都是关于从对象库中将 UIBarButton 拖到 ViewController,然后将其连接到下一个 VC,使用方法 prepareForSegue,完成,就这么简单。就我而言,情况完全不同。

请指教:)

4

2 回答 2

2

您可以将目标设置为 self 并将操作设置为您的 didPressDone 选择器:

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
                                                               style:UIBarButtonItemStyleDone
                                                              target:self
                                                              action:@selector(didPressDone:)];

选择器应该有这样的签名:

- (void)didPressDone:(id)sender
于 2012-05-02T01:53:34.637 回答
0

这个怎么样-

第1步:

在您的 Viewcontroller.h 文件中,只需像这样创建 UIBarButton 的 IOBOutlet -

@property(nonatomic, strong) IBOutlet UIBarButton *doneButton;

以及它的 IBAction 方法-

-(IBAction)didPressDone:(id)sender;

第2步:

通过情节提要连接 UIBarButton 并附加操作方法。

第 3 步:

现在让我们转到 Viewcontroller.m 文件并在-(void)viewDidLoad方法中,按照您想要的方式初始化 UIBarButton -

self.doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
                                                               style:UIBarButtonItemStyleDone
                                                              target:nil
                                                              action:nil];
    self.navigationItem.rightBarButtonItem = self.doneButton;

除了方法签名之外,“didPressDone”方法实现将是相同的——

-(IBAction)didPressDone:(id)sender {

    PointsResultsViewController *pointsResults = [self.storyboard instantiateViewControllerWithIdentifier:@"resultsPointsVC"];

    [self.navigationController pushViewController:pointsResults animated:YES];
}

希望,这会有所帮助。

于 2015-04-10T21:34:56.980 回答