在UITableViewController中使用UINavigationBarDelegate,它嵌入在导航控制器中

时间:2015-11-05 09:47:36

标签: ios uinavigationcontroller uitabbarcontroller uinavigationbar uinavigationitem

我在故事板内的表视图控制器中嵌入了导航控制器: embedded

已为表视图控制器分配了一个继承自UITableViewController的自定义类(在身份检查器中):

@interface TableClass : UITableViewController

我想要实现的是从UINavigationBarDelegate获取事件,特别是此事件:

- (void)navigationBar:(UINavigationBar *)navigationBar didPopItem:(UINavigationItem *)item;

显然继承协议不会起作用,因为TableClass继承自UITableViewController和不是 UINavigationController。

如何从UINavigationBarDelegate获取事件?

谢谢。

编辑 - 不同的解决方案:

自"返回"按钮是由框架自动创建的我决定自己创建按钮:

- (void)viewDidLoad {
[super viewDidLoad];

if ([[[someClass instance] stack] count] > 0) {
    NSString *titleBackName = [NSString stringWithFormat:@"%@", [[someClass instance] peakFromStack]];
    UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle:titleBackName style:UIBarButtonItemStyleBordered target:self action:@selector(back:)];
    self.navigationItem.leftBarButtonItem=newBackButton;
   }
}

这意味着我在导航栏中指定了一个新的后退按钮,当用户点击它时,它将执行此方法:

-(void)back:(UIBarButtonItem *)sender {
    [self.navigationController popViewControllerAnimated:YES];
}

这基本上意味着我现在通过我自己实现pop和添加到导航视图控制器的堆栈

仍在寻找代表解决方案..

0 个答案:

没有答案