我有很多代码可以在UINavigationBar中更改视图。
所以代码是这样的:
UIButton *butt2=[UIButton buttonWithType:UIButtonTypeCustom ];
[butt2 setFrame:CGRectMake(285, 7, 30, 25)];
[butt2 setTag:2];
[butt2 setImage:[UIImage imageNamed:@"tag_icon.png"] forState:UIControlStateNormal];
[butt2 addTarget:self action:@selector(revealMenu:) forControlEvents:UIControlEventTouchDown];
[self.navigationController.navigationBar addSubview:butt2] ;
我想创建一个方法来获取代码中不同内容的参数:
1.图像(简单)
2.按钮的动作 - AHA!这个我无法弄清楚如何做
答案 0 :(得分:0)
添加目标原型是:
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
如果你使用相同的类型" SEL"你应该将@selector(yourMethod)传递给你的方法。
答案 1 :(得分:0)
如果您决定将其实现为功能,则可能类似于
void addNavigationButton(UIViewController *vc, UIImage *image, SEL action)
{
UIButton *butt2=[UIButton buttonWithType:UIButtonTypeCustom ];
[butt2 setFrame:CGRectMake(285, 7, 30, 25)];
[butt2 setTag:2];
[butt2 setImage:image forState:UIControlStateNormal];
[butt2 addTarget:vc action:action forControlEvents:UIControlEventTouchDown];
[vc.navigationController.navigationBar addSubview:butt2] ;
}
应该在视图控制器中调用它
addNavigationButton(self, [UIImage imageNamed:@"tag_icon.png"], @selector(revealMenu:));
另一个好主意 - 将此函数实现为UIViewController的类别方法。