2015-04-08 17 views

Trả lời

13

Các cách trình bày ảnh hưởng đến "Hiển thị" segues. Có thể nó cũng ảnh hưởng đến các phân đoạn khác, nhưng tôi chỉ thử nghiệm một phân đoạn Hiển thị. Tôi đã thử nghiệm trên OS X 10.10.5 (Yosemite) với Xcode 7.1.1.

Nếu kiểu trình bày của bộ điều khiển cửa sổ là "Nhiều" (mặc định), thì Hiển thị segue cho bộ điều khiển cửa sổ luôn tải một phiên bản mới của bộ điều khiển cửa sổ từ bảng phân cảnh. Điều này có nghĩa là bạn có thể kết thúc với nhiều phiên bản của bộ điều khiển cửa sổ cùng một lúc, mỗi phiên bản có cửa sổ riêng trên màn hình. Theo mặc định, các cửa sổ đó sẽ chồng lên nhau, vì vậy nó sẽ không rõ ràng những gì đã xảy ra cho đến khi bạn di chuyển hoặc đóng một cửa sổ.

Nếu kiểu trình bày của bộ điều khiển cửa sổ là "Đơn" và thể hiện của bộ điều khiển cửa sổ đã được tải từ bảng phân cảnh và trình điều khiển cửa sổ vẫn tồn tại (có lẽ là do cửa sổ của nó vẫn còn trên màn hình), segue để điều khiển xem đó sẽ không tạo một trường hợp mới. Thay vào đó, Show segue sẽ đưa cửa sổ của trình điều khiển cửa sổ hiện hành lên phía trước.

Hành vi này hữu ích nếu bạn muốn có hành vi giống như cửa sổ Thiết bị của Xcode, nơi chỉ có thể có một cửa sổ như vậy. Bạn tạo mục menu "Thiết bị" trong trình đơn Cửa sổ trong bảng phân cảnh của bạn và kết nối nó với bộ điều khiển cửa sổ Thiết bị trong bảng phân cảnh có Hiển thị phân tách. Đặt kiểu trình bày của bộ điều khiển cửa sổ Devices thành Single. Bây giờ mục menu sẽ không bao giờ tạo một bộ điều khiển cửa sổ Thiết bị thứ hai nếu đã tồn tại.

Có thể bạn sẽ muốn bằng cách nào đó đặt thuộc tính excludedFromWindowsMenu của cửa sổ thành true, vì vậy nó không xuất hiện hai lần trong trình đơn Cửa sổ (vì theo mặc định, nó tự thêm vào menu đó). Bạn có thể, ví dụ, sử dụng một lớp con của NSWindowController mà bộ nó:

class DevicesWindowController: NSWindowController { 
    override func windowDidLoad() { 
     super.windowDidLoad() 
     window?.excludedFromWindowsMenu = true 
    } 
} 

Xem bộ điều khiển cũng có một phong cách trình bày, bởi vì bạn cũng có thể kết nối Hiện segues để xem các bộ điều khiển. Khoảng cách Hiển thị được kết nối với bộ điều khiển chế độ xem sẽ tự động tạo bộ điều khiển cửa sổ để chứa bộ điều khiển chế độ xem khi chạy. Phong cách trình bày của bộ điều khiển cửa sổ được đặt hiệu quả thành bộ điều khiển xem, do đó bạn sẽ có được cùng một hành vi đơn giản nếu bạn đặt bản trình bày của bộ điều khiển chế độ xem thành Đơn.

Theo như tôi có thể biết, cài đặt bảng phân cảnh không có thuộc tính hoặc phương thức công khai tương ứng mà bạn có thể sử dụng trong mã.

Nếu bạn kết nối Hiển thị segue với tham chiếu bảng phân cảnh (mới trong Xcode 7), thì segue bỏ qua kiểu trình bày của bộ điều khiển cửa sổ đích và hoạt động như thể nó là "Nhiều". Điều này xảy ra ngay cả khi đích thực sự nằm trong cùng một bảng phân cảnh như tham chiếu.

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