我添加了一个自定义的“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
答案 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];
}