gpt4 book ai didi

ios - 创建应用时出现 "Static table views are only valid when embedded in UITableViewController instances"如何解决?

转载 作者:可可西里 更新时间:2023-11-01 04:34:19 27 4
gpt4 key购买 nike

我是 Objective-C 的初学者,我正在学习使用 Apple 开发人员文章创建 IOS 应用程序的教程。

https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/SecondTutorial.html#//apple_ref/doc/uid/TP40011343-CH8-SW1

我创建了一个 unwind segue,但我卡住了。我已经浏览了如下所示的 SO 帖子

  1. StoryBoard issue in Xcode 6.1
  2. Change a UIViewController to a UITableViewController inside a storyboard?
  3. Want to create a cool static UI but : "Static table views are only valid..."

我尝试修改 Storyboard源代码以使用“tableViewController”而不是“viewController”,但 Storyboard无法打开。

我确信有一个简单的解决方案,但我对 Objective-C 或 IOS 开发了解不够,无法知道它是什么或如何实现它。

我的 Controller 实现了 UITableViewController,我的 View 是 UITableView。我附上了下面的截图。

XCode Storyboard setup

和错误信息:

Error message and description

我的 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

最佳答案

你的照片有点小,所以有点难以分辨我们在看什么。另外你的描述有点含糊。

问题是,为了将 TableView 设置为静态 TableView ,它必须由 UITableViewController 管理,而不是常规的 UIViewController。

UITableViewController 是 UIViewController 的特殊子类。当您要向 Storyboard 中添加新场景时,您可以转到 UI 对象列表,找到 UITableViewController,然后将一个场景拖到 Storyboard 中。

关于 UITableViewController 对象的一个​​烦人的事情是它们管理的唯一东西是一个 TableView 。您不能使用它们来设置标签、按钮和其他 UI 元素。只是一个表格 View ,没有别的。

你说:

'我试图修改 Storyboard源代码以使用“tableViewController”而不是“viewController”...'

我不知道那是什么意思。什么是“ Storyboard来源”?您不“修改 Storyboard源代码”,而是将 UITableViewController 拖到 Storyboard上。

然后你说“......但是 Storyboard打不开。”我也不知道 that 是什么意思。你将不得不解释这一点。

幸运的是,有一个简单的解决方案。

你想要做的是创建一个常规的 UIViewController 来管理除 TableView 之外的所有内容,然后在该 View Controller 中放置一个“容器 View ”并设置一个“嵌入 segue”,在该容器 View 中安装一个 UITableViewController .

这是你如何做到的:

在右侧的 UI 元素列表中搜索“容器”。将容器 View 拖到您希望显示 TableView 的 View Controller 上。然后将 UITableViewController 拖到 Storyboard的空白区域以创建新的 Storyboard场景。然后从第一个 View Controller 中的容器 View 按住 control 拖动到 UITableViewController 上。这会创建一个嵌入转场,这会导致 UITableViewController 作为 subview Controller 加载,其 View 在内部并调整大小以适应容器 View 。

现在您可以拥有一个窗口,其中包含由 UITableViewController 管理的 TableView 和其他内容。

设置此功能的更多详细信息超出了 SO 帖子的范围。我建议您对容器 View 和嵌入转场进行一些谷歌搜索,并尝试找到有关设置它们的教程。

关于ios - 创建应用时出现 "Static table views are only valid when embedded in UITableViewController instances"如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28909157/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com