Ios Xcode情节提要:Can';t将视图添加到ViewController

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不允许

我使用的是Xcode 10(Swift 5和iOS 12),我的应用程序当前设置如下:

  • 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本身替换为普通的视图控制器。现在,它的主视图将是一个普通视图,您可以将任何喜欢的内容拖动到其中,包括一个表视图和一个按钮。更可能的情况是,您将使用容器视图,而不是裸表视图,并带有表视图控制器的嵌入序列


    是否将tableView的角区域向上拖动以增加间距,然后在其下方拖动UIView?似乎tableview的约束覆盖了整个屏幕,也许这是个问题。@ImrulKayes它不允许我这样做。如果我单击左侧列表中的“我的表格视图”,它在右侧将变为蓝色,但用于调整大小的小方块将丢失。我也不能为它添加任何约束,选项是灰色的。明白了,谢谢!我想在屏幕底部添加一个“保存”按钮。要添加不带TableViewController的NavigationController,只需添加一个ViewController,单击
    视图控制器场景
    项,然后在顶部栏中:
    编辑器-嵌入-导航控制器
    。之后,可以像以前一样(几乎)设置所有内容-重要提示:要在运行时填充表格,请使用
    class ViewController:UIViewController、UITableViewDataSource、UITableViewDelegate
    而不是
    class ViewController:UITableViewController
    !如果只有一张桌子和一个按钮,为什么要使用ContainerView呢?