2011-10-16 31 views
8

Tôi đang tạo cửa sổ bật lênĐăng ký từ bộ điều khiển chế độ xem mới và muốn đẩy bộ điều khiển chế độ xem thứ ba vào ngăn xếp gốc. Đây là cách tôi là tạo ra các ứng dụng:Trong Bảng phân cảnh iOS 5, làm thế nào để bạn đẩy cảnh mới vào trình điều khiển chế độ xem gốc từ Popover?

  1. Tạo mới Single View Application
  2. Chọn Use Storyboards
  3. Chọn file MainStoryboard.storyboard.
  4. Chọn Chỉ xem Controller, thay đổi TitleIdentifier-initialView, sau đó chọn Editor->Embed In->Navigation Controller
  5. Kéo hai View Controller đối tượng mới từ Objects Library vào canvas
  6. Thay đổi TitleIdentifier của View Controller mới: popoverViewnewView.
  7. Thêm đối tượng Round Rect Button từ Thư viện đối tượng vào initialViewpopoverView.
  8. Thêm đối tượng Label từ Thư viện đối tượng vào 'chế độ xem mới'.
  9. Điều khiển nhấp vào nút trong initialView và kéo đến popoverView.
  10. Chọn tùy chọn Popover từ menu Storyboard Segues xuất hiện.
  11. Điều khiển nhấp vào nút trong số popoverView và kéo đến newView.
  12. Chọn tùy chọn Push từ menu Storyboard Segues.
  13. Xây dựng & Chạy.

Bấm vào nút đầu tiên, và popover xuất hiện, nhưng khi bạn nhấp vào nút trong popover, không có gì xảy ra (nó nên đẩy quan điểm mới, nhưng không.)

Những gì tôi muốn phải làm là để nó đẩy lên ngăn xếp Navigation Controller, nhưng tôi không chắc chắn cách thiết lập bảng phân cảnh cho điều đó.

Bất kỳ ý tưởng nào?

Trả lời

1

Có vẻ như nó sẽ hoạt động, nhưng nếu nó không cố gắng như sau: 1. Nhấp vào khoảng cách không hoạt động và cung cấp mã nhận dạng. Hãy nói đó là PopoverToNewSegue.

  1. Trong tệp triển khai cho trình điều khiển chế độ xem cửa sổ bật lên, thêm hành động khi nút được nhấp.

  2. Chức năng đó sẽ trả về void và thêm dòng sau: [self performSegueWithIdentifier: @ "PopoverToNewSegue" sender: self];

Điều đó sẽ giúp phân đoạn của bạn chạy. Tôi đã nhận thấy rằng segues không phải lúc nào cũng hoạt động như bạn mong đợi, nhưng điều này làm việc cho tôi mà không thất bại.

+1

Tôi gặp sự cố tương tự. Tôi đã cố gắng gọi performSegueWithIdentifier như bạn đã nói và nó không làm gì cả: ( – jrwren

6

Bạn đang mong đợi phân cấp UINavigationController để tự mở rộng thành cửa sổ bật lên được trình bày. Nó sẽ không. Điều tương tự cũng xảy ra khi trình bày các bộ điều khiển xem phương thức. Nếu bạn đăng nhập self.navigationController trong số popoverView, bạn sẽ thấy rằng số đó là số không.

Nhúng popoverView vào riêng của nó UINavigationController. Hãy nhớ rằng nếu bạn đang ghi đè prepareForSegue:sender: và cố gắng định cấu hình cửa sổ bật lên, bạn sẽ cần phải nhận được topViewController từ destinationViewController vì đích đến bây giờ là một phiên bản UINavigationController.

+1

giải thích của bạn vừa giúp tôi giải quyết vấn đề của mình (http://stackoverflow.com/questions/13591559/how-to-pass-parameters-to-a-popover- view-controller-inside-a-navigation-controll) Cảm ơn bạn – HpTerm

+0

bạn có thể thêm một ví dụ nhỏ về điều đó không? – MiQUEL

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