ios 7 展示了第一个带后退按钮的导航 Controller

标签 ios objective-c

我正在展示一个新的 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/

相关文章:

ios - 自动续订订阅的最低目标 iOS 版本是多少?

ios - 快速从 userDefaults 加载到 UItextfield.text

ios - 在 NSNumbers 的 NSArray 中查找最小值和最大值

objective-c - 我想从 UIImagePicker 同时上传图像和视频

iphone - 在 iOS App 中嵌入 youtube 视频

java - Apple Plist 转换为 Java 数据结构

ios - 在 .m 文件的@interface 中初始化的 CGPoint 变量不能有值

java - 适用于 Cocoa (Objective-C) 和 Java 的 JSON 库

ios - 需要帮助从 iOS 设备上传多个大图像

ios - 带有导航栏大标题的 UITableView 奇怪的滚动行为,滚动到顶部时顶部的弹跳效果自动切断/生涩