Ios Xcode情节提要:Can';t将视图添加到ViewController
我使用的是Xcode 10(Swift 5和iOS 12),我的应用程序当前设置如下:Ios Xcode情节提要:Can';t将视图添加到ViewController,ios,xcode,uiview,uiviewcontroller,xcode-storyboard,Ios,Xcode,Uiview,Uiviewcontroller,Xcode Storyboard,我使用的是Xcode 10(Swift 5和iOS 12),我的应用程序当前设置如下: UIViewController1(登录屏幕)-segue12至-> 自动创建的导航控制器 UIViewController2带有UITableView-segue23至-> UIViewController3(关于带有自动创建的“后退”按钮的UITableView中项目的详细信息) 导航栏仅包含一个“” 我现在想添加另一个UITableView,在UITableView下面有一个按钮,但是Xcode不允许
UIViewController
1(登录屏幕)-segue12至->UIViewController
2带有UITableView
-segue23至->UIViewController
3(关于带有自动创建的“后退”按钮的UITableView
中项目的详细信息)导航栏
仅包含一个“”
我现在想添加另一个UITableView
,在UITableView
下面有一个按钮,但是Xcode不允许我将它拖到UITableView
下面,只能拖到UITableView
或直接拖到“First Responder”下面,它将视图放到自己的窗口之外
如果我删除“我的表视图”,它也不会让我拖入替换项
如何修复此问题,以便添加新的ui视图
+ui按钮
自动创建UIViewController 2的NavigationController
这就解释了一切。将导航控制器拖动到情节提要中时,得到的是导航控制器及其根视图控制器,根视图控制器是UITableViewController
让我们往后退一步。视图控制器可以而且必须只有一个主视图。它占据了整个场景。它无法调整大小。它不能有同级视图,因为它没有同级视图作为其子级的superview。它只能有子视图(子视图)
在本例中,ViewController2是UITableViewController,MyTableView是ViewController2的主视图。(表视图控制器总是以这种方式配置的,这就是将导航控制器拖到情节提要中时得到的结果。)这就是为什么不能向其中添加更多视图,但子视图除外,例如原型单元格内容。您的按钮除了在表视图中之外没有其他地方可去
那么,该怎么办
- 如果要添加的额外界面只是一个按钮,通常的解决方案是将其放入导航栏。它将成为表视图控制器导航项的一部分
- 如果您不想这样做,也就是说,如果您真的希望按钮和表视图在界面中是彼此的兄弟,那么您需要将ViewController2本身替换为普通的视图控制器。现在,它的主视图将是一个普通视图,您可以将任何喜欢的内容拖动到其中,包括一个表视图和一个按钮。更可能的情况是,您将使用容器视图,而不是裸表视图,并带有表视图控制器的嵌入序列
视图控制器场景
项,然后在顶部栏中:编辑器-嵌入-导航控制器
。之后,可以像以前一样(几乎)设置所有内容-重要提示:要在运行时填充表格,请使用class ViewController:UIViewController、UITableViewDataSource、UITableViewDelegate
而不是class ViewController:UITableViewController
!如果只有一张桌子和一个按钮,为什么要使用ContainerView呢?