我是Objective-C初学者,我正在阅读教程,使用Apple开发人员文章创建一个IOS应用程序。
我创造了一个放松的segue,我已经卡住了。我已经浏览过如下所示的帖子
我尝试修改故事板源以使用“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
答案 0 :(得分:5)
你的照片有点小,所以我们有点难以分辨我们在看什么。另外你的描述有点模糊。
这笔交易是为了将表视图设置为静态表视图,它必须由UITableViewController管理,而不是常规的UIViewController。
UITableViewController是UIViewController的特殊子类。当您向故事板添加新场景时,您将转到UI对象列表,找到UITableViewController,然后将其拖到故事板上。
关于UITableViewController对象的一个恼人的事情是他们管理的唯一事情是表视图。您无法使用它们来设置标签,按钮和其他UI元素。只是一个表视图,没有别的。
你说:
&#39;我尝试修改故事板源以使用&#34; tableViewController&#34;而不是&#34; viewController&#34; ...&#39;
我不知道这意味着什么。什么是故事板来源&#34;?您没有&#34;修改故事板来源&#34;,您将UITableViewController拖到故事板上。
然后你说&#34; ...但故事板不会打开。&#34;我也不知道 的含义。你将不得不解释这一点。
幸运的是,有一个简单的解决方案。
你想要做的是创建一个常规的UIViewController来管理除了表视图之外的所有东西,然后放一个&#34;容器视图&#34;在那个视图控制器中并设置一个&#34;嵌入segue&#34;在该容器视图中安装UITableViewController。
以下是您的表现方式:
在右侧的UI元素列表中搜索&#34; container&#34;。将容器视图拖动到您希望显示表视图的视图控制器上。然后将UITableViewController拖到故事板上的空白区域以创建新的故事板场景。然后从第一个视图控制器中的容器视图控制拖动到UITableViewController。这将创建一个嵌入segue,它会将UITableViewController作为子视图控制器加载,其视图在其内部并且大小适合容器视图。
现在,您可以拥有一个窗口,其中包含由UITableViewController管理的表视图和其他内容。
有更多细节可以设置,超出SO帖子的范围。我建议你在容器视图上进行谷歌搜索并嵌入segues,并尝试找到有关设置它们的教程。