我有一个财产:
@property (strong, nonatomic) IBOutlet UIBarButtonItem *backButton;
它的设置如下:
UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(goBack:)];
backItem.imageInsets = UIEdgeInsetsZero;
UIToolbar *backToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 44, 44)];
backToolbar.userInteractionEnabled = YES;
[backToolbar setTransform:CGAffineTransformMakeScale(-1, 1)];
backToolbar.items = [NSArray arrayWithObjects:backItem, nil];
backToolbar.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
backToolbar.clipsToBounds = YES;
self.backButton = [[UIBarButtonItem alloc] initWithCustomView:backToolbar];
self.backButton.enabled = YES;
self.backButton.imageInsets = UIEdgeInsetsZero;
我原以为会将选择器设置为此:
- (IBAction)goBack:(id)sender {
NSLog(@"goBack pushed");
[self.iframeView goBack];
}
但是,尽管iframeView(只是一个UIWebView)确实转到了上一页,但是当我单击按钮时,
goBack pushed
从未注销。我也尝试过这样设置动作(在上面的代码下方设置):
[self.backButton setTarget:self];
[self.backButton setAction:@selector(goBack:)];
有什么想法可以调整代码,以便在按下后退按钮时调用选择器?
最佳答案
您是否从情节提要中创建了backButton
(因为您将其声明为IBOutlet)?
如果您已经从情节提要中创建了它,则只需按Ctrl左键单击即可将按钮拖动到实现文件.m
中,其中- (IBAction)goBack:(id)sender
用于创建选择器。
更新:
我只是注意到你这样说
但是,当我单击该按钮时,永远不会注销goBack push
iframeView(只是一个UIWebView)确实转到上一页。
UIWebView已经具有goBack
功能。所以通过设置
[self.backButton setAction:@selector(goBack:)];
当按下按钮时,它将调用UIWebView的
goBack
函数。您所需要的只是给它一个不同的名字:
[self.backButton setAction:@selector(backButtonPressed:)];
- (IBAction)backButtonPressed:(id)sender{
NSLog(@"goBack pushed");
[self.iframeView goBack];
}