[英]Xcode Storyboard: Can't add View to ViewController
我正在使用Xcode 10(在Swift 5和iOS 12上),我的应用当前设置如下:
UIViewController
1(登录屏幕)-segue12至-> NavigationController
UITableView
UIViewController
2-segue23至-> UIViewController
3(有关带有自动创建的“后退”按钮的UITableView
项的详细信息) NavigationBar
仅包含“”。
现在,我想在UITableView
下方添加另一个带有按钮的UIView
,但是Xcode不允许我将其拖到UITableView
下方,只能拖入UITableView
或直接在“第一响应者”下方,这会将View置于其自己的窗口之外。
如果删除“我的表格视图”,它也将不允许我拖动替换。
如何解决此问题,以便添加新的UIView
+ UIButton
?
自动创建UIViewController 2的NavigationController
这说明了一切。 将导航控制器拖到情节提要中时,得到的是导航控制器及其根视图控制器,而根视图控制器是UITableViewController。
让我们退后一会儿。 一个视图控制器可以并且必须仅具有一个主视图。 它占据了整个场景。 无法调整大小。 它不能具有同级视图,因为它没有父级视图作为同级视图的子级。 它只能有子级(子视图)。
好吧,在这种情况下,ViewController2是UITableViewController,而MyTableView是ViewController2的主视图。 (始终以这种方式配置表视图控制器,这就是将导航控制器拖到情节提要中时所得到的。)这就是为什么您不能向其中添加更多视图的原因,除了作为子视图之外,例如原型单元内容。 除了表视图内部 ,您的按钮无处可去。
那么该怎么办?
如果您要添加的额外界面只是一个按钮,通常的解决方案是将其放入导航栏中 。 它成为表视图控制器导航项的一部分。
如果您不想这样做-也就是说,如果您确实希望按钮和表视图在界面中彼此相同,则您需要用普通的视图控制器替换ViewController2本身。 现在,其主视图将是普通视图,您可以将所需的任何内容拖到其中,包括表格视图和按钮。 您更有可能使用容器视图 (而不是裸表视图),并将容器 嵌入表视图控制器中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.