2015-04-08 13 views

cevap

13

sunum stili "Göster" i etkiler segues. Muhtemelen diğer inançları da etkiliyor, ama sadece bir gösteri segueini test ettim. Xcode 7.1.1 ile OS X 10.10.5 (Yosemite) üzerinde test ettim.

Bir pencere denetleyicisinin sunum stili "Birden Çok" (varsayılan) ise, pencere denetleyicisine bir Göster sekmesi her zaman, film denetleyicisinin yeni bir örneğini film şeridinden yükler. Bu, pencere denetleyicisinin birden çok örneğini aynı anda, her biri ekranda kendi penceresine sahip olabileceğiniz anlamına gelir. Varsayılan olarak, bu pencereler birbirinin üzerine yığılacaktır, bu yüzden siz hareket edinceye ya da kapatana kadar ne olduğu belli olmayacaktır.

Bir pencere denetleyicisinin sunum stili "Tek" ise ve pencere denetleyicisinin bir örneği daha önce film şeridinden yüklenmişse ve bu pencere denetleyicisi hala var (muhtemelen penceresinin ekranda hala görüntülenmesi nedeniyle), ardından bir Göster Bu görünüm denetleyicisine segue değil yeni bir örnek oluşturur. Bunun yerine, Show segue varolan pencere denetleyicisinin penceresini öne getirecektir.

Bu davranış, yalnızca böyle bir pencerenin olabileceği Xcode's Devices penceresi gibi davranışı istiyorsanız yararlıdır. Film şeridindeki Pencere menüsünde bir "Cihazlar" menü öğesi oluşturursunuz ve bir Gösteri işaretiyle film şeridindeki Cihazlar pencere denetleyicisine bağlarsınız. Devices pencere denetleyicisinin sunum stilini Tek olarak ayarlayın. Şimdi, menü öğesi zaten mevcutsa ikinci bir Aygıt pencere denetleyicisi oluşturmayacaktır.

Muhtemelen bir şekilde pencerenin excludedFromWindowsMenu özelliğini true olarak ayarlamak istersiniz, bu nedenle Pencere menüsünde iki kez görünmez (çünkü varsayılan olarak kendini bu menüye ekler). Ayrıca göster denetleyicileri görüntülemek için segues bağlanabilir çünkü

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

Görünüm kontrolörleri de bir sunum stili vardır: Örneğin, ayarlar NSWindowController bir alt sınıfı kullanabilirsiniz. Görünüm denetleyicisine bağlı bir Göstergeli Segue, çalışma anında görüntü denetleyicisini içerecek şekilde otomatik olarak bir pencere denetleyicisi oluşturur. Pencere denetleyicinin sunum stili, denetleyicinin denetleyicisine etkin bir şekilde ayarlanır; böylece, denetleyicinin sunumunu Tek olarak ayarladığınızda aynı tekil davranışı elde edersiniz.

Anlatabildiğim kadarıyla, storyboard ayarında, kodda kullanabileceğiniz hiçbir ortak özellik veya yöntem yoktur.

Gösteri işaretini bir storyboard referansına (Xcode 7'de yeni) bağlarsanız, bu durumda hedef pencere denetleyicisinin sunum stilini yoksayar ve "Çoklu" gibi davranır. Bu, hedef aslında referansla aynı hikaye tahtasında olsa bile olur.