看板 MacDev 關於我們 聯絡資訊
各位大大.高手好, 剛入門IOS有許多基本問題詢問。 新增元件如果是選擇用程式的方式處理, 會有一段 view.addSubview(元件)的方式來加到父容器,接著才能做constraint的設定, 現在的問題是,如果我不是想要將元件顯示在swift class所綁的View Controller上, 而是View Controller上的可能是Container View 或 View 內,那該如何做更改? 又另一個類似問題,我有兩個以上的View Controller,是都綁在同一個swift class, 然後我也用了view.addSubview,結果兩個View Controller的同一位置下 都會顯示由程式所新增的元件,而這邊是沒錯, 我的問題是如果只想要其中一個View Controller有顯示,另一個不用顯示, 那如何修改?又或者根本不能這樣用?或者swift class也不適合綁兩個View Controller? 謝謝幫忙。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.84.59 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1517554910.A.59D.html
Sexyfather: 第一個問題 : 其實ViewController 顯示讓你看到的就是 02/02 23:42
Sexyfather: 一塊UIView 所以跟你前面所提到的是一樣做法 02/02 23:42
Sexyfather: 而 addSubview 這個方法是用在UIView 而不是UIViewCon 02/02 23:43
Sexyfather: troller 02/02 23:43
Sexyfather: 倒數第三行問題 自身想法是用 window.rootViewControl 02/02 23:52
Sexyfather: ler 就能解決 Btw,其實頭到尾還是看不太懂你要問的 X 02/02 23:52
Sexyfather: DD 只是憑感覺回你 剛開始用xib 拉一下元件 這樣或許 02/02 23:52
Sexyfather: 會比較好起步喔 02/02 23:52
謝謝Sexy大幫忙,我可能在摸索一下您說的~ 推 sdico: 你在storyboard可以看到ViewController內有一個view 02/03 16:40
sdico: 你的view.addSubview指的就是它。如果要加到其他UI上 02/03 16:40
sdico: 就myView.addSubview, containerView.addSubview ...這樣 02/03 16:41
謝謝sdico大,這我試過,但myView.addSubview這段會報錯, " Use of unresolved identifier 'myView' " 一開始認為是ID的對應到, 所以我直接改了StoryBorad的Document Outline內的View改名子為'myView', 或是在identity改Resotration ID為'myView',也無法解錯。 所以感覺無法這麼用,是否有可能是哪裡的設定需要加上。 ※ 編輯: goodsheng (36.225.84.59), 02/05/2018 11:16:06
goodsheng: 請問還有大大可以幫忙看一下嗎@@ 02/08 17:07
yuanruo: myView是你創建view class的名字 02/08 19:25
yuanruo: ex: let myView = otherView(), addSubView(myView) 02/08 19:26
yuanruo: myView 再去add你要加的其他view 02/08 19:26
yuanruo: 另外第二個問題最好先用addChildViewController 這方法 02/08 19:27
yuanruo: 最後呼叫didMoveToParentViewController顯示你要呈現的 02/08 19:28
yuanruo: 至於切換可以用內建的transitionFromViewController 02/08 19:29
yuanruo: 或是你自己用一個暫存的controller替代切換 02/08 19:29
yuanruo: 不要直接只用addSubview Controller.view這個方法 02/08 19:30
yuanruo: 這樣會破壞view hierarchy, 日後碰到複雜的debug困難 02/08 19:32