我有一個頁面視圖控制器,它使用普通的UIPageViewController方法在視圖控制器之間轉換。裏面呈現視圖控制器(假設當前視圖控制器)中的一個,我添加子視圖控制器到一個名爲containerView
像這樣子視圖:在UIPageController的當前頁面呈現子視圖控制器
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let child = storyboard.instantiateViewController(withIdentifier: "child")
self.addChildViewController(child)
child.view.frame = self.containerView.bounds
self.containerView.addSubview(child.view)
child.didMove(toParentViewController: self)
視圖控制器呈現containerView
內,但它是唯一半互動。例如,假設子視圖控制器有一個滑塊,它用滑塊的值更新標籤。滑動滑塊時,滑塊將在containerView
內部可視化移動,但不會更新標籤(連接到滑塊的IBAction不會運行)。當視圖控制器正常顯示時(使用正常繼續的全屏幕),此行爲正常工作。
任何想法?
它非常奇怪......所以在調試時,slider-changed的委託方法不會被調用? –
實際上它會被觸發,但是標籤不會更新。我在滑塊IBAction中放置了一個斷點,它會被調用,但是標籤的文本不會改變'label.text = String(slider.value)',就好像當視圖控制器正常顯示時一樣,我甚至試圖改變'self.view'的背景色,並且工作正常看看是否有效 –
你需要在_much_ more p中描述情況p爲了得到一個很好的答案,請重新調整細節。否則,你只是在浪費你剛剛花在賞金上的代表。很難說出什麼問題。但是,請注意多個視圖控制器級別之間的通信(在父視圖控制器中的視圖控制器中查看)是一個非常棘手的問題!我在這裏有一個很長的討論可能會給你一些想法的選項:http://stackoverflow.com/a/33458977/341994 – matt