Xcode 情节提要:无法将视图添加到 ViewController
Xcode Storyboard: Can't add View to ViewController
我正在使用 Xcode 10(Swift 5 和 iOS 12),我的应用目前设置如下:
UIViewController
1(登录屏幕)- segue12 到 ->
NavigationController
自动创建
UIViewController
2 带有 UITableView
- segue23 到 ->
UIViewController
3(有关 UITableView
中带有自动创建的“后退”按钮的项目的详细信息)
NavigationBar
只包含一个“”。
我现在想添加另一个 UIView
,在 UITableView
下面有一个按钮,但是 Xcode 不允许我将它拖到 UITableView
下面,只能拖到 UITableView
下面UITableView
或“First Responder”正下方,它将外部视图放入其自己的 window.
如果我删除“我的 Table 视图”,它也不会让我拖入替换项。
我该如何解决这个问题,以便我可以添加新的 UIView
+ UIButton
?
NavigationController that automatically created UIViewController 2
这说明了一切。当你把一个导航控制器拖到故事板中时,你得到的是一个导航控制器和它的根视图控制器,而根视图控制器是一个UITableViewController。
让我们退后一步。一个视图控制器可以而且必须只有一个主视图。它占据了整个场景。它不能调整大小。它不能有兄弟视图,因为它没有父视图,兄弟视图是 child 的。它只能有children(子视图)。
嗯,在这种情况下,ViewController2 是一个 UITableViewController,而 MyTableView 是 ViewController2 的主视图。 (table 视图控制器总是以这种方式配置,这就是将导航控制器拖到情节提要中时得到的结果。)这就是为什么不能向其添加更多视图的原因,子视图除外,例如原型单元格内容。除了 内部 table 视图之外,您的按钮无处可去。
那么,怎么办?
如果你要添加的额外界面只是一个按钮,通常的解决方法是将其放入导航栏。它成为 table 视图控制器导航项的一部分。
如果您不想这样做——也就是说,如果您真的希望按钮和 table 视图在界面中成为彼此的兄弟姐妹——那么您需要用 普通 视图控制器替换 ViewController2 本身。现在它的主视图将是一个普通视图,你可以将任何你喜欢的东西拖进去,包括一个 table 视图和一个按钮。更有可能的是,您将使用 容器视图 ,而不是裸露的 table 视图,将 embed segue 嵌入到 table 视图控制器。
我正在使用 Xcode 10(Swift 5 和 iOS 12),我的应用目前设置如下:
UIViewController
1(登录屏幕)- segue12 到 ->NavigationController
自动创建UIViewController
2 带有UITableView
- segue23 到 ->UIViewController
3(有关UITableView
中带有自动创建的“后退”按钮的项目的详细信息)
NavigationBar
只包含一个“”。
我现在想添加另一个 UIView
,在 UITableView
下面有一个按钮,但是 Xcode 不允许我将它拖到 UITableView
下面,只能拖到 UITableView
下面UITableView
或“First Responder”正下方,它将外部视图放入其自己的 window.
如果我删除“我的 Table 视图”,它也不会让我拖入替换项。
我该如何解决这个问题,以便我可以添加新的 UIView
+ UIButton
?
NavigationController that automatically created UIViewController 2
这说明了一切。当你把一个导航控制器拖到故事板中时,你得到的是一个导航控制器和它的根视图控制器,而根视图控制器是一个UITableViewController。
让我们退后一步。一个视图控制器可以而且必须只有一个主视图。它占据了整个场景。它不能调整大小。它不能有兄弟视图,因为它没有父视图,兄弟视图是 child 的。它只能有children(子视图)。
嗯,在这种情况下,ViewController2 是一个 UITableViewController,而 MyTableView 是 ViewController2 的主视图。 (table 视图控制器总是以这种方式配置,这就是将导航控制器拖到情节提要中时得到的结果。)这就是为什么不能向其添加更多视图的原因,子视图除外,例如原型单元格内容。除了 内部 table 视图之外,您的按钮无处可去。
那么,怎么办?
如果你要添加的额外界面只是一个按钮,通常的解决方法是将其放入导航栏。它成为 table 视图控制器导航项的一部分。
如果您不想这样做——也就是说,如果您真的希望按钮和 table 视图在界面中成为彼此的兄弟姐妹——那么您需要用 普通 视图控制器替换 ViewController2 本身。现在它的主视图将是一个普通视图,你可以将任何你喜欢的东西拖进去,包括一个 table 视图和一个按钮。更有可能的是,您将使用 容器视图 ,而不是裸露的 table 视图,将 embed segue 嵌入到 table 视图控制器。