Xây dựng trên mã Jorge, đây là giải pháp của tôi.
tôi tạo ra một loại đơn giản trên UIViewController
:
UIViewController + ImageBackButton.h
#import <UIKit/UIKit.h>
@interface UIViewController (ImageBackButton)
- (void)setUpImageBackButton;
@end
UIViewController + ImageBackButton.m
#import "UIViewController+ImageBackButton.h"
@implementation UIViewController (ImageBackButton)
- (void)setUpImageBackButton
{
UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 34, 26)];
[backButton setBackgroundImage:[UIImage imageNamed:@"back_arrow.png"] forState:UIControlStateNormal];
UIBarButtonItem *barBackButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
[backButton addTarget:self action:@selector(popCurrentViewController) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = barBackButtonItem;
self.navigationItem.hidesBackButton = YES;
}
- (void)popCurrentViewController
{
[self.navigationController popViewControllerAnimated:YES];
}
@end
Bây giờ tất cả các bạn phải làm là #import UIViewController+ImageBackButton.h
trong cả v bộ điều khiển iew hoặc trong một cái nhìn cơ bản tùy chỉnh lớp điều khiển mà điều khiển xem khác kế thừa từ và thực hiện các phương pháp viewWillAppear:
:
- (void)viewWillAppear:(BOOL)animated
{
[self setUpImageBackButton];
}
Đó là tất cả. Bây giờ bạn có một nút quay lại hình ảnh ở khắp mọi nơi. Không có đường viền. Thưởng thức!
Nguồn
2013-05-30 08:37:11
Cảm ơn câu trả lời của bạn. Tôi đã thử các kích thước hình ảnh khác nhau, nhưng không có kích thước nào trong số chúng hoạt động. Tôi luôn luôn có một đường viền xung quanh hình ảnh thu nhỏ của tôi. Một điều tương tự xảy ra nếu tôi sử dụng LeftBarButtonItem thay vì BackBarButtonItem. Bạn có biết bất kỳ dự án ví dụ nào bao gồm hình ảnh và mã hoạt động không? – Denny
Không, tôi không biết về bất kỳ dự án nào, nhưng tôi có thể cố gắng đưa một dự án lại với nhau sau, tối nay. – Moshe