0

2 つの質問があります。

質問 1: ナビゲーションの戻るボタンを変更しようとしています。親の ViewController から実行しています。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"imgrdy"]) {
        VCImageEditingViewController *ieVC = (VCImageEditingViewController *)segue.destinationViewController;
        UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"New" style:UIBarButtonItemStyleBordered target:nil action:@selector(handleNewBtnNav:)];
        [[self navigationItem] setBackBarButtonItem: newBackButton];    
    }
}
-(IBAction)handleNewBtnNav:(id)sender {
    UIAlertView *alertNew = [[UIAlertView alloc]initWithTitle:@"New photo" message:@"Are you sure?" delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil];
    [alertNew show];
}

タイトルは確かに変更されましたが、アラートは表示されません。ターゲットを「self」と「ieVC」に変更しようとしましたが、まだ何も変わりません。

質問 2: 1 つの ViewController の戻るボタンのタイトルのみを変更する方法はありますか? または、各親ViewControllerで同じ変更を行う必要がありますか?

ありがとうございました。

4

1 に答える 1

1

ボタンを宣言するときに target:self を使用します。これはアクションのレシーバーであり、それが nil であると言っています

UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"New" style:UIBarButtonItemStyleBordered target:self action:@selector(handleNewBtnNav:)];
于 2013-10-19T10:58:52.873 に答える