我正在尝试通过按导航控制器的backBarButtonItem来更改执行的操作。 我知道我必须在下一个视图(其上应该出现具有自定义行为的按钮)之前编辑backBarButtonItem。所以在之前的ViewController中我添加了以下代码,以通过segue推送:
#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是一个视图,用户可以在其中编辑自己的信息。每当单击后退按钮时,我想检查GUI中的某些内容是否已被用户更改。如果是这种情况,UIAlterView应询问用户是否要保存更改。我尝试使用viewWillDissappear,但AlterView会在下一个ViewController中显示(如果我点击alterViewButtons,程序会崩溃)。
答案 0 :(得分:0)
我不确定您是否可以更改backBarButtonItem
的目标。那么self.navigationItem.leftBarButtonItem
呢?在self.navigationItem.backBarButtonItem not working ?? Why is the previous menu still showing as the button?进行的讨论可能是相关的。