作者goodsheng (恩哈哈)
看板MacDev
标题[问题] 程式新增元件
时间Fri Feb 2 15:01:47 2018
各位大大.高手好,
刚入门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://webptt.com/cn.aspx?n=bbs/MacDev/M.1517554910.A.59D.html
1F:→ Sexyfather: 第一个问题 : 其实ViewController 显示让你看到的就是 02/02 23:42
2F:→ Sexyfather: 一块UIView 所以跟你前面所提到的是一样做法 02/02 23:42
3F:→ Sexyfather: 而 addSubview 这个方法是用在UIView 而不是UIViewCon 02/02 23:43
4F:→ Sexyfather: troller 02/02 23:43
5F:→ Sexyfather: 倒数第三行问题 自身想法是用 window.rootViewControl 02/02 23:52
6F:→ Sexyfather: ler 就能解决 Btw,其实头到尾还是看不太懂你要问的 X 02/02 23:52
7F:→ Sexyfather: DD 只是凭感觉回你 刚开始用xib 拉一下元件 这样或许 02/02 23:52
8F:→ Sexyfather: 会比较好起步喔 02/02 23:52
谢谢Sexy大帮忙,我可能在摸索一下您说的~
推
sdico: 你在storyboard可以看到ViewController内有一个view 02/03 16:40
9F:→ sdico: 你的view.addSubview指的就是它。如果要加到其他UI上 02/03 16:40
10F:→ 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
11F:→ goodsheng: 请问还有大大可以帮忙看一下吗@@ 02/08 17:07
12F:→ yuanruo: myView是你创建view class的名字 02/08 19:25
13F:→ yuanruo: ex: let myView = otherView(), addSubView(myView) 02/08 19:26
14F:→ yuanruo: myView 再去add你要加的其他view 02/08 19:26
15F:→ yuanruo: 另外第二个问题最好先用addChildViewController 这方法 02/08 19:27
16F:→ yuanruo: 最後呼叫didMoveToParentViewController显示你要呈现的 02/08 19:28
17F:→ yuanruo: 至於切换可以用内建的transitionFromViewController 02/08 19:29
18F:→ yuanruo: 或是你自己用一个暂存的controller替代切换 02/08 19:29
19F:→ yuanruo: 不要直接只用addSubview Controller.view这个方法 02/08 19:30
20F:→ yuanruo: 这样会破坏view hierarchy, 日後碰到复杂的debug困难 02/08 19:32