我正在展示一个新的 View TableView Controller 作为导航 Controller 的根 Controller 。然后我添加一个带有选择器的后退按钮,但是当我单击该按钮时,没有任何内容被调用。我只在导航 Controller 中展示它,因为我想在表格 View 上有后退按钮。这是我显示 Controller 的代码:
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
ATDetailTableViewController *detailViewController = [sb instantiateViewControllerWithIdentifier:@"ATDetailTableViewController"];
detailViewController.propToDisplay = self.apartments[0];
detailViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:detailViewController];
[self presentViewController:nav animated:YES completion:nil];
然后当 detailviewcontroller 加载时,我创建了不调用选择器方法的条形按钮项:
- (void)viewDidLoad
{
[super viewDidLoad];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
style:UIBarButtonItemStyleBordered
target:nil
action:@selector(backPressed)];
self.navigationItem.leftBarButtonItem = backButton;
}
- (void)backPressed
{
NSLog(@"back pressed...");
[self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];
}
此处的最佳做法是什么?我应该只制作一个带有工具栏的 View Controller 吗?另外,我收到警告:不鼓励在分离的 View Controller 上呈现 View Controller
最佳答案
问题是您将 target
参数设置为 nil
而不是 self
。你想要:
- (void)viewDidLoad
{
[super viewDidLoad];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(backPressed)];
self.navigationItem.leftBarButtonItem = backButton;
}
关于ios 7 展示了第一个带后退按钮的导航 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23614964/