我有一个启动一个UIViewController一个UITableViewController,每当后退按钮在子控制器,这是从"的UIViewController"派生类按我想的陷阱.我可以更改后退按钮标题,但设置backBarButtonItem时设置目标和操作值似乎被忽略.有什么方法可以接收点按"后退"按钮的某种通知?
- (void)showDetailView
{
// How I'm creating & showing the detail controller
MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyDetailView" bundle:nil];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Pages"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(handleBack:)];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];
[self.navigationController pushViewController:controller animated:animated];
[controller release];
}
- (void)handleBack:(id)sender
{
// not reaching here
NSLog(@"handleBack event reached");
}
Run Code Online (Sandbox Code Playgroud) 当我按下导航控制器中的默认后退按钮(例如<设置)时,我正在尝试调用功能.
在其他情况下我正在创建自定义按钮,在我按下Ctrl +拖动到XCode中的红色退出按钮并将其指向选择segue.
现在我需要使用导航控制器的默认后退按钮,但我无法将其设置为segue动作,因为它在Storyboard视图中没有后退按钮(但它存在于模拟器中).
模拟器:
的XCode:
我可以在导航控制器中创建自定义按钮并将其指定为自定义展开segue,但该按钮将是丑陋的,没有"<"符号.
我在stackoverflow上找到了一些答案,但它们都是用Objective-C编写的:(.