2016-03-19 26 views
0

Sayfalamada, sayfalar farklı bir xib görünümü gösterecek şekilde sayfalama etkinleştirilmiş yatay bir kaydırma görünümüne sahibim. Bazı xib görünümlerinde, IBAction ile bağlantılı düğmeler vardır. Her xib sınıfında IBAction'ı beyan ederim. Her şey görünüyor ve iyi görünüyor düğmeleri tıklama efektleri ve hepsi gösteriliyor, ama IBAction ateş değil mi? ikisi de düğmeleri ve düğmeleri sırasıyla ClockViewController.swift ve CarViewController.swift bildirilen IBActions bağlantılıdırURiews düğmeleri, tetikleme tetiklemeyen bir kaydırma görünümünde.

let clockView: ClockViewController = ClockViewController(nibName: "ClockViewController", bundle: nil) 

    let carView: CarViewController = CarViewController(nibName: "CarViewController", bundle: nil) 

    scrollview.addSubview(clockView.view) 

    carView.view.frame.origin.x = self.view.frame.width 

    scrollview.addSubview(carView.view) 

clockView ve Carview: İşte bir kod örneği olduğunu.

Görünümlerden birinin nasıl göründüğü. UIViewController'ı xib'e eklemiyorum, sadece UIView kullanıyorum. Bu sorunun bir parçası olabilir sanırım ama bir hata verdi çünkü UIViewController subview olarak kullanamazsınız. enter image description here

enter image description here

enter image description here Herhangi bir yardım takdir ,

+0

'filesOwner' nedir? – Paulw11

+0

fileOwner aynı xib sınıfıdır ve bunu göstermek için soruyu güncelledim, teşekkürler. – fullMoon

+0

Bence senin problemin, 'CarView' 'i yerel bir değişkene koyduğun, böylece e fonksiyonu çıktığı zaman yayınlanacak. Bir örnek değişken/özellik – Paulw11

cevap

1

sorun hiçbir şey yoktur gibi fonksiyon çıkmadan bir kez çıkacak böylece, yerel bir değişken olarak carView ilan olmasıdır olduğunu, kendi bakış denetleyicisi carView aradığınız bu biraz kafa karıştırıcı güçlü bir referans tutmak için. Görünüm öğeleri kendilerine kaydırma görünümü tarafından başvurulur, böylece yayınlanmazlar ancak artık olayları işlemek için bir görünüm denetleyicisi örneği olmayacaktır.

carView ve clockView özelliklerini değiştirirseniz, güçlü bir başvuru yapılacaktır.

0

Sorun, ViewControllers içindeki ViewControllers kullanıyor görünüyor. Bunu storyboard ile yapmak isterseniz, bir containerView kullanmanız ve ViewController'ı bu kapsayıcıya yerleştirmeniz gerekir.

Program aracılığıyla bunu yapmak istiyorsanız, bu alt görünümü olan ViewView denetleyicileri olan ViewView denetleyicilerini içeren ana görünüm denetleyicisine alt görünüm denetleyicileri eklemeniz gerekir.

P.S. belki CarViewController az kafa karıştırıcı :)

+0

Şaşkınlık için özür dilerim. Haklısınız UIViewController içinde başka bir UIViewController içinde kullanamıyorum ve bana bir hata verdi, bu yüzden UIViewController kullanmıyorum, ben sadece UIView kullanıyorum. – fullMoon

İlgili konular