【发布时间】:2014-09-17 10:21:32
【问题描述】:
我必须在每个 ViewController 中创建一个相同的按钮。所以我决定写一个有这个功能的类。我创建了一个类名 MyUtils 并向 UINavigationItem 添加了一个后退按钮,它可以正确显示,但不知道如何在该类中添加一个事件。
它显示准确,但没有执行任何事件。我的意思是 popViewControllerAnimated:YES
我喜欢叫 myUtil
MyUtil *utils = [[MyUtil alloc] init];
[utils NavAndBackBtn:self.navigationItem];
MyUtil.m
-(void)NavAndBackBtn:(UINavigationItem *)nav
{
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setImage:[UIImage imageNamed:@"icon_back.png"] forState:UIControlStateNormal];
//[btn setTarget:self action:@selector(popView) forControlEventTouchUPInside];
[button setFrame:CGRectMake(0,0,36,20);
UIBarButtonItem *barbtn = [[UIBarButton alloc] initWithCustomView:btn];
nav.leftBarButtonItem = barbtn;// this gives error
}
-(void)popView
{
// [self.navigationController popViewControllerAnimated:YES]; //not working no method in self
}
但不知道如何在 MyUtil 类中向 popViewControllerAnimated:YES 添加事件。因为我在那里没有 self 的参考。
popView 方法
必须有一种方法来获取类的上下文。我的意思是这个班上的自己。并代表它添加事件。并且没有 UINavigationItem 方法会弹出ViewController。
简单来说
我只想在我在 MyUtils 创建的那个按钮上 popViewController 事件。但它必须在MyUtils 类中实现。我怎样才能在另一个类中 popViewControllerAnimated。
【问题讨论】:
标签: objective-c uinavigationcontroller uinavigationitem