2011-07-30 25 views

Trả lời

15

Tôi chắc chắn tôi đã đọc trong tài liệu tham khảo của nhà phát triển rằng các nút bổ sung trong thanh điều hướng được cau mày. Tôi không thể tìm thấy đoạn đó bây giờ. Tôi chưa tự mình làm, nhưng tìm thấy liên kết này có vẻ như phác họa chính xác những gì bạn cần làm: (http://www.mattdipasquale.com/blog/2010/11/02/how-to-add-multiple-uibarbuttonitems-to-uinavigationbar/)

Bạn đã cân nhắc sử dụng thuộc tính thanh công cụ của bộ điều khiển điều hướng chưa?

+0

Cảm ơn, đó là chính xác những gì tôi đang tìm kiếm. Đó là một chút hacky nhưng nó có vẻ là cách duy nhất để thêm nhiều mục vào một UINavigationBar – aryaxt

+3

Nếu bạn chính xác rằng nút thanh bên phải bổ sung đã chính thức cau mày, tài sản mới trong iOS5 được ghi nhận bởi jrturton là bằng chứng cho thấy Apple sẵn sàng để thay đổi tâm trí của nó. Rất đáng khích lệ. (Và nó có nghĩa là hack ở trên có thể sẽ được chấp nhận khi đệ trình.) – Wienke

+0

câu trả lời dưới đây phải là câu trả lời đúng cho câu hỏi imho –

0

có thực sự ngay cả một chút quặng hacky, nhưng đồng thời nhiều cách sạch hơn làm công cụ này: chỉ cần xác định một thể loại trên UINavigationItem, như:

UINavigationItem + Toolbars.h:

@interface UINavigationItem (Toolbars) 

@property (nonatomic, retain) IBOutlet UIToolbar * rightToolBar; 
@property (nonatomic, retain) IBOutlet UIToolbar * leftToolBar; 

- (void)setRightToolBar:(UIToolbar *)_rightToolBar; 
- (UIToolbar *)rightToolBar; 
- (void)setLeftToolBar:(UIToolbar *)_leftToolBar; 
- (UIToolbar *)leftToolBar; 

@end 

UINavigationItem + Toolbars.m:

#import "UINavigationItem+Toolbars.h" 

@implementation UINavigationItem (Toolbars) 

- (void)setRightToolBar:(UIToolbar *)_rightToolBar { 
    self.rightBarButtonItems = _rightToolBar.items; 
} 

- (UIToolbar *)rightToolBar { 
    return nil; 
} 

- (void)setLeftToolBar:(UIToolbar *)_leftToolBar { 
    self.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:_leftToolBar] autorelease]; 
} 

- (UIToolbar *)leftToolBar { 
    return nil; 
} 

@end 

Sau khi làm điều đó, chỉ cần gán một lối thoát trong IB cài đặt một thanh công cụ (chỉ cần tạo một) và tận hưởng các nút xuất hiện trên Navigat mặt hàng ion.

+2

Vì ios5 bạn chỉ có thể gán một mảng các mục nút thanh làm thuộc tính 'rightBarButtonItems'. – jrturton

+0

Vâng, bạn có thể, nhưng làm thế nào để bạn đặt chúng ra trong IB? Cá nhân tôi thích có mọi thứ được đặt trên thanh công cụ để nhìn thấy hình dáng của các nút cạnh nhau. – Anton

79

Kể từ iOS5, bạn có thể gán một loạt các mục nút thanh cho thuộc tính rightBarButtonItems của mục điều hướng (lưu ý số nhiều).

+2

Đây phải là câu trả lời được chấp nhận thực sự :) – sachadso

28

tôi đã sử dụng JRTurtons trả lời trong Xcode 4.5, iOS 6 và thực hiện nó như thế này và nó hoạt động:

// Two buttons at the right side of nav bar 
UIBarButtonItem *addAttachButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addAttachmentClicked:)]; 
UIBarButtonItem *sendButton = [[UIBarButtonItem alloc] initWithTitle:LS(@"Send") style:UIBarButtonItemStyleBordered target:self action:@selector(sendClicked:)]; 
self.navigationItem.rightBarButtonItems = @[addAttachButton,sendButton]; 

Tuy nhiên, tôi nên đề cập đến, đó UIBarButtonSystemItemPageCurl không hoạt động như thế.

1

thêm bất kỳ thiết kế nào vào bộ điều khiển điều hướng trong XCode thật dễ dàng.

thêm một UIView để cảnh của bạn thêm các nút bạn cần đến UIView sau đó kéo và thả các UIView để không gian ngay trong navigationController

0

Trong Xcode 7.1 (có lẽ thậm chí sớm hơn), bạn có thể thêm nhiều các mục ở bên phải hoặc bên trái của UINavigationBar chỉ bằng cách kéo chúng vào. Nếu bạn kéo đến đúng vị trí, bạn sẽ nhận được một thanh dọc nhỏ cho biết vị trí mục đó sẽ được chèn vào.

Các vấn đề liên quan