1

Navigation ControllerのbackBarButtonItemを押して実行されるアクションを変更しようとしています。次のビュー (カスタム動作のボタンが表示される) が押される前に、backBarButtonItem を編集する必要があることはわかっています。そのため、前の ViewController で、次のコードを追加して、セグエ経由でプッシュしました。

#pragma mark - segue methods

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"SettingsToProfile"]) {
        MyProfileViewController* myprofileVC = [segue destinationViewController];
        myprofileVC.myProfile = myProfile;
        self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Settings_" style:UIBarButtonItemStylePlain target:myprofileVC action:@selector(popTOSettingsViewController:)];
    } else {
        self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Settings" style:UIBarButtonItemStylePlain target:nil action:nil];
    }
}

タイトルの「Settings_」は正しく表示されるのですが、「target: myprofileVC action:@selector(popTOSettingsViewController:)」はまったく効果がないようです。

バックグラウンド:

MyProfileViewController は、ユーザーが自分の情報を編集できるビューです。backbarbutton がクリックされるたびに、GUI の何かがユーザーによって変更されたかどうかを確認したいと思います。その場合、UIAlterView は、変更を保存するかどうかをユーザーに尋ねる必要があります。viewWillDissappear で解決しようとしましたが、次の ViewController に AlterView が表示されます (また、alterViewButtons をクリックするとプログラムがクラッシュします)。

4

1 に答える 1

0

のターゲットを変更できるかどうかわかりませんbackBarButtonItemself.navigationItem.leftBarButtonItem代わりにどうですか?self.navigationItem.backBarButtonItem not working ??で議論があります。以前のメニューがまだボタンとして表示されているのはなぜですか? それは関連するかもしれません。

于 2012-12-14T16:00:05.437 に答える