10

Tôi có một ứng dụng chạy trên UINavigationController. Bây giờ tôi muốn thêm một phần tử UIToolbar vào cuối mỗi màn hình. Thanh công cụ ở phía dưới nên được tùy chỉnh cho ViewController hiện đang được hiển thị. Ý tưởng đầu tiên của tôi là chỉ cần thêm thanh công cụ vào khung nhìn navigationController và gắn thẻ nó, trong viewController, tôi nghĩ rằng tôi sẽ có thể lấy ra phần tử UIToolbar. Tôi có đoạn mã sau:UIToolbar trên mỗi trang của UINavigationController

Trong appdelegate tôi:

// Get instance of Toolbar (navController is an instance of UINavigationController and TOOLBAR_TAG a constant) 
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 440, 320, 40)]; 
toolbar.tag = TOOLBAR_TAG; 
[navController.view addSubview:toolbar]; 

Trong viewController của tôi, tôi đã cố gắng này:

UIToolbar *toolbar = [self.navigationController.view viewWithTag:TOOLBAR_TAG]; 
toolbar.barStyle = UIBarStyleBlack; 

Tuy nhiên, điều này mang lại cho tôi một lỗi nói rằng thanh công cụ trong trường hợp của tôi là một " UILayoutContainerView "đối tượng, không phải là một đối tượng UIToolbar. Do đó ý tưởng này có vẻ là một kết thúc chết.

Người khác giải quyết vấn đề này như thế nào?

Trả lời

40

UINavigationController đã có một thanh công cụ. Chỉ cần sử dụng

[self.navigationController setToolbarHidden:NO]; 

trong bộ điều khiển xem trên cùng và

[self setToolbarItems:items]; 

trong tất cả các bộ điều khiển tầm nhìn của bạn, nơi mà mục là một NSArray các hạng mục thanh công cụ rằng quan điểm điều khiển của.

EDIT: Vì lý do giải pháp của bạn không hoạt động: TOOLBAR_TAG có lẽ không phải là duy nhất, đó là lý do bạn nhận được một chế độ xem phụ khác. Nhưng như tôi đã nói, bạn nên sử dụng thanh công cụ được bao gồm.

+1

Wow đó là dịch vụ tôi không ngờ, thậm chí tôi đã tìm kiếm tài liệu chưa tìm thấy tài liệu này. Rất tuyệt, cảm ơn! – Robin

+0

bạn được chào đón. =) trong tài liệu UINavigationController, btw: http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UINavigationController_Class/Reference/Reference.html#//apple_ref/occ/instp/UINavigationController/toolbar –

+1

Bạn có thể ghi đè lên phương thức pushController UINavigationController của bạn để tránh sao chép/dán và thiết lập các mục thanh công cụ ở đây. –

1

Để dễ dàng hiển thị thanh công cụ dưới cùng UINavigationController, bạn có thể nhấp vào hộp kiểm "Hiển thị thanh công cụ" có thể truy cập từ thanh tra với đối tượng "Điều khiển điều hướng" được chọn. Tôi hy vọng điều này có thể giúp đỡ :)

0

Từ quan điểm thiết kế, tôi sẽ không khuyên bạn nên UNLESS này bạn biết thanh công cụ sẽ có mặt cho mỗi chế độ xem trong ngăn xếp. Thứ hai bạn bắt đầu ẩn/hiển thị thanh công cụ cho các chế độ xem khác nhau trong ngăn xếp, bạn sẽ thấy rằng hoạt ảnh đó (thanh công cụ trượt ra/với chế độ xem) không hoạt ảnh như bạn mong đợi.

Nếu bạn cần thanh công cụ cho các chế độ xem cụ thể, hãy đặt chúng trong các chế độ xem đó vì thanh công cụ theo ngữ cảnh cho chế độ xem chứ không phải toàn bộ ngăn xếp điều hướng.

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