[問題] 程式新增元件

看板MacDev作者 (恩哈哈)時間7年前 (2018/02/02 15:01), 7年前編輯推噓0(0020)
留言20則, 4人參與, 7年前最新討論串1/1
各位大大.高手好, 剛入門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

02/02 23:42, 7年前 , 1F
第一個問題 : 其實ViewController 顯示讓你看到的就是
02/02 23:42, 1F

02/02 23:42, 7年前 , 2F
一塊UIView 所以跟你前面所提到的是一樣做法
02/02 23:42, 2F

02/02 23:43, 7年前 , 3F
而 addSubview 這個方法是用在UIView 而不是UIViewCon
02/02 23:43, 3F

02/02 23:43, 7年前 , 4F
troller
02/02 23:43, 4F

02/02 23:52, 7年前 , 5F
倒數第三行問題 自身想法是用 window.rootViewControl
02/02 23:52, 5F

02/02 23:52, 7年前 , 6F
ler 就能解決 Btw,其實頭到尾還是看不太懂你要問的 X
02/02 23:52, 6F

02/02 23:52, 7年前 , 7F
DD 只是憑感覺回你 剛開始用xib 拉一下元件 這樣或許
02/02 23:52, 7F

02/02 23:52, 7年前 , 8F
會比較好起步喔
02/02 23:52, 8F
謝謝Sexy大幫忙,我可能在摸索一下您說的~ 推 sdico: 你在storyboard可以看到ViewController內有一個view 02/03 16:40

02/03 16:40, 7年前 , 9F
你的view.addSubview指的就是它。如果要加到其他UI上
02/03 16:40, 9F

02/03 16:41, 7年前 , 10F
就myView.addSubview, containerView.addSubview ...這樣
02/03 16:41, 10F
謝謝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

02/08 17:07, 7年前 , 11F
請問還有大大可以幫忙看一下嗎@@
02/08 17:07, 11F

02/08 19:25, 7年前 , 12F
myView是你創建view class的名字
02/08 19:25, 12F

02/08 19:26, 7年前 , 13F
ex: let myView = otherView(), addSubView(myView)
02/08 19:26, 13F

02/08 19:26, 7年前 , 14F
myView 再去add你要加的其他view
02/08 19:26, 14F

02/08 19:27, 7年前 , 15F
另外第二個問題最好先用addChildViewController 這方法
02/08 19:27, 15F

02/08 19:28, 7年前 , 16F
最後呼叫didMoveToParentViewController顯示你要呈現的
02/08 19:28, 16F

02/08 19:29, 7年前 , 17F
至於切換可以用內建的transitionFromViewController
02/08 19:29, 17F

02/08 19:29, 7年前 , 18F
或是你自己用一個暫存的controller替代切換
02/08 19:29, 18F

02/08 19:30, 7年前 , 19F
不要直接只用addSubview Controller.view這個方法
02/08 19:30, 19F

02/08 19:32, 7年前 , 20F
這樣會破壞view hierarchy, 日後碰到複雜的debug困難
02/08 19:32, 20F
文章代碼(AID): #1QT0pUMT (MacDev)
文章代碼(AID): #1QT0pUMT (MacDev)