自定义UIButton从表视图向上钻取?

时间:2011-08-21 12:08:16

标签: ios uitableview uinavigationbar uibarbuttonitem

我添加了一个自定义的“Back”UIBarButtonItem,它来自我在photoshop中制作的Image。我设法使它看起来很好,我的问题是让它工作。

我的按钮什么都不做,我假设因为我没有给它分配任何动作。我只是不知道这样做的正确语法?

继承我的代码

    UIImage *buttonImage = [UIImage imageNamed:@"BackButton.png"];
        UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];
        [backButton setBackgroundImage:buttonImage forState:UIControlStateNormal];
        backButton.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height);

// Im assuming this is where i need to put the action...
        //[backButton addTarget:self action:@selector(.......) forControlEvents:UIControlEventTouchUpInside];

    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] 
                                                 initWithCustomView:backButton];

基本上,我希望我的新自定义按钮功能就像普通UITableView中的默认按钮一样

的问候, Andyy

1 个答案:

答案 0 :(得分:2)

您可以在IB中执行此操作,或者您可以在代码中通过调用addTarget:action:forControlEvents: UIControlEventTouchUpInside来调用按钮被点击时调用方法(操作)。例如:

[backButton addTarget:self action:@selector(backButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

这在UIControl class reference中有记载,UIButton是UIControl的子类。

您需要一个在事件发生时调用的方法,我在上面的代码中调用了backButtonPressed:。此方法采用一个参数,即发送事件的对象,如下所示:

-(void)backButtonPressed:(id)sender
{
    // NOTE: assumes self is your UIViewController
    [self.navigationController popViewControllerAnimated:YES];
}