我创造了一个放松的segue,我已经卡住了.我已经浏览了如下所示的SO帖子
> StoryBoard issue in Xcode 6.1
> Change a UIViewController to a UITableViewController inside a storyboard?
> Want to create a cool static UI but : “Static table views are only valid…”
我试图修改故事板源以使用“tableViewController”而不是“viewController”,但故事板不会打开.
我确信有一个简单的解决方案,但我不知道足够的Objective-C或IOS开发知道它是什么,或如何实现它.
我有我的控制器实现UITableViewController和我的视图作为UITableView.我已附上以下截图.
和错误消息:
我的ToDoListTableViewController.h的源代码如下:
#import <UIKit/UIKit.h> @interface ToDoListTableViewController : UITableViewController - (IBAction)unwindToList:(UIStoryboardSegue *)segue; @end
和实施
#import "ToDoListTableViewController.h" @interface ToDoListTableViewController () @end @implementation ToDoListTableViewController . . . Other methods - (IBAction)unwindToList:(UIStoryboardSegue *)segue { } @end
解决方法
这笔交易是为了将表视图设置为静态表视图,它必须由UITableViewController管理,而不是常规的UIViewController.
UITableViewController是UIViewController的特殊子类.当您向故事板添加新场景时,您将转到UI对象列表,找到UITableViewController,然后将其拖到故事板上.
关于UITableViewController对象的一个恼人的事情是他们管理的唯一的东西是表视图.您无法使用它们来设置标签,按钮和其他UI元素.只是一个表视图,没有别的.
你说:
‘我试图修改故事板源来使用“tableViewController”而不是“viewController”…’
我不知道这意味着什么.什么是“故事板源”?您没有“修改故事板源”,将UITableViewController拖到故事板上.
然后你说“……但故事板不会打开.”我也不知道这意味着什么.你将不得不解释这一点.
幸运的是,有一个简单的解决方案.
你想要做的是创建一个常规的UIViewController来管理除了表视图之外的所有东西,然后在该视图控制器中放置一个“容器视图”并设置一个“嵌入segue”,在该容器视图中安装一个UITableViewController.
这是你如何做到这一点:
在右侧的UI元素列表中搜索“容器”.将容器视图拖动到您希望显示表视图的视图控制器上.然后将UITableViewController拖到故事板上的空白区域以创建新的故事板场景.然后从第一个视图控制器中的容器视图控制拖动到UITableViewController.这将创建一个嵌入segue,这会导致UITableViewController作为子视图控制器加载,其视图在其内部并且大小适合容器视图.
现在,您可以拥有一个窗口,其中包含由UITableViewController管理的表视图和其他内容.
设置它的更多细节超出了SO帖子的范围.我建议你在容器视图上进行一些谷歌搜索并嵌入segues并尝试找到有关设置它们的教程.