Đây là giải pháp khá hay mà tôi nghĩ bao gồm tất cả các điểm mà mọi người đưa ra trong các nhận xét ở trên. Tương tự như câu trả lời được chấp nhận, nhưng cách tiếp cận này bao gồm khoảng cách thêm (thông qua việc sửa đổi khung hình) sao cho nút không bị đập vỡ lên cạnh phải.
// Create the info button
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
// Adjust the frame by adding an addition 10 points to its width so the button is padded nicely
infoButton.frame = CGRectMake(infoButton.frame.origin.x, infoButton.frame.origin.y, infoButton.frame.size.width + 10.0, infoButton.frame.size.height);
// Hook the button up to an action
[infoButton addTarget:self action:@selector(showInfoScreen) forControlEvents:UIControlEventTouchUpInside];
// Add the button to the nav bar
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
// Also make sure to add a showInfoScreen method to your class!
Nguồn
2013-04-10 07:36:39
Brilliant, nhờ Reena. Tôi đã đánh dấu nó là câu trả lời được chấp nhận, nhưng nếu bạn rất tử tế để tha thứ cho sự táo bạo của tôi, tôi có thể hỏi làm thế nào người ta có thể mang nút thông tin sang trái năm pixel hay không? Thêm nó như là mục nút thanh bên phải có nghĩa là nó được khá nghiền nát lên phía bên phải của màn hình. –
sử dụng thuộc tính 'leftBarButtonItem' bạn có thể đặt ở bên trái self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: btn]; – Reena
Xin lỗi Reena. Tôi muốn nó như là mục nút thanh bên phải, tôi chỉ muốn thêm một chút không gian bên phải (do đó mang nút phải 5px sang bên trái). Điều đó có thể không? –