2011-07-06 77 views
5

Tôi đang cố gắng đặt thanh UIToolbar lên trên cùng của UIPopoverController theo cách tương tự như Apple đã thực hiện trong các trang và ghi chú bằng thanh công cụ "hình", "bảng", "biểu đồ" " .Thanh công cụ UIPopoverController ở trên cùng

enter image description here

tôi đã quản lý để đặt một ở phía dưới bằng cách sử dụng cùng một phương pháp được mô tả như trong this post nhưng tôi không thể di chuyển nó đến đỉnh.

Tôi có thể làm điều đó bằng cách đặt một thanh công cụ UIToolbar bình thường vào một trong các bộ điều khiển xem con, tuy nhiên thanh công cụ dường như không giống với đường viền và trông không đẹp như trong các ứng dụng của Apple.

Có ai có bất kỳ đề xuất nào về cách thực hiện việc này hay không hoặc liệu nó có thể thực hiện được không? Bất kì sự trợ giúp nào đều được đánh giá cao.

Cảm ơn!

Trả lời

10

Sử dụng một UINavigationController chứa chỉ của bạn một ViewController như nội dung của popoverController, như vậy:

MyViewController *myVC = [[myViewController alloc] init]; 

UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:myVC]; 

myPopoverController = [[UIPopoverController alloc] initWithContentViewController:navCon]; 

[myVC release]; 
[navCon release]; 

[myPopoverController presentPopoverFromRect:rect 
            inView:view 
        permittedArrowDirections:UIPopoverArrowDirectionRight 
            animated:YES]; 

Sau đó, trong init viewController của bạn, thiết lập mục của navigationController:

self.navigationItem.title = @"myTitle"; 
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editButtonTapped:)] autorelease]; 

Bạn có thể đi phát điên và đặt bất cứ thứ gì bạn muốn vào đó:

self.navigationItem.titleView = [[MySpecialTitleView alloc] initWithFrame...]; 

Bộ điều khiển điều hướng của bạn sẽ không điều hướng nếu chỉ có một ViewController trên ngăn xếp của nó.

iOS 7 caveat: NavigationBars bên trong popovers dường như bỏ qua tint trong iOS 7. Tôi nghĩ rằng đó là một lỗi và khuyến khích bạn để gửi một báo cáo lỗi với táo nếu bạn gặp phải vấn đề này.

+0

này được chính xác những gì tôi đã được tìm kiếm! Cám ơn rất nhiều! – Thomas

1

Bạn có thể đặt thanh công cụ lên trên UIPopoverController.

Chính xác hơn bạn phải đặt nó trên đầu trang của UIViewController sẽ được đặt làm nội dung của UIPopoverController của bạn khi gọi initWithContentViewController.

Nếu bạn đang sử dụng IB:
1) kéo một UItoolbar lên đỉnh UIViewController bạn
2) chọn UIToolbar, đi đến Thanh tra kích thước và trong phần autosizing:
- click vào chỉ số hàng đầu để sửa chữa các lề trên
- click vào chỉ số dưới để làm cho lề dưới linh hoạt

Trong cửa sổ xem trước ít thanh màu đỏ nên ở lại trên đầu trang

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