我正在创建一个自定义导航按钮,而不是它的默认外观。我可以创建按钮,但是遇到麻烦的是它的选择器。我想在不同类的方法中添加该按钮的选择器。我将UIViewController作为参数传递,因此可以修改navigationBar。

-(void)addNavButton:(MyViewController *)vc
{
    UIImage *buttonImg = [UIImage imageNamed:@"back.png"];
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setImage:buttonImg forState:UIControlStateNormal];

    button.frame = CGRectMake(0, 0, buttonImg.size.width, buttonImg.size.height);

    [button addTarget:self action:@selector(vc.popBackNavigation) forControlEvents:UIControlEventTouchUpInside];  //Here is the line where I am having trouble

    UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button];
    vc.navigationItem.leftBarButtonItem = customBarItem;
}

我这样做是因为我不想在每个类中添加相同的方法来定义customNavigation项。如果有简便的方法或有效的方法,请告诉我

最佳答案

在这种情况下,您需要针对其他类别。

请记住,目标是您要将消息发送到的对象。因此,在这种情况下,选择器为:

@selector(popBackNavigation)

目标是vc

给予:
[button addTarget:vc action:@selector(popBackNavigation) forControlEvents:UIControlEventTouchUpInside];

关于ios - 我可以将选择器添加到其他类吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23915069/

10-16 05:10