UIViewController 无法查看 UITableViewController

Posted

技术标签:

【中文标题】UIViewController 无法查看 UITableViewController【英文标题】:UIViewController can not view UITableViewController 【发布时间】:2011-11-19 21:01:19 【问题描述】:

我有 2 个视图。第一个是主 UIViewController,第二个是 UITableViewController,它有我要显示的数据。

所以我在第一个按钮上放了一个按钮,我想从我的 UIViewController 转到 mytableviewcontroller。但是,当编写此代码时,我的应用程序崩溃了我的代码有什么问题?

错误:线程1程序收到信号sigabrt

    -(IBAction) displayTableView:(id) sender
 myTableViewController = [[MyTableViewController alloc] 
                        initWithNibName:@"TableViewController" 
                        bundle:nil];

 [[self view] addSubview:myTableViewController.view];  // thread 1 program received signal sigabrt



感谢前辈

【问题讨论】:

可以添加崩溃日志吗?是xib吗?你在这些类的 viewDidLoad 中有什么? 这是在我的 UITableViewController - (void)viewDidLoad [super viewDidLoad];数据库名称 = @"my.db"; NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDir = [documentPaths objectAtIndex:0]; databasePath = [documentsDir stringByAppendingPathComponent:databaseName]; [自我检查AndCreateDatabase]; [自读AnimalsFromDatabase]; 【参考方案1】:
`addSubview` does not retain your `myTableViewController`, so the app crashes.

您应该使用 myTableViewController 的属性,或者更好的是,将您的控制器放在 UINavigationController 中

【讨论】:

myTableViewController 如何使用属性??或者如何将我的控制器放入 UINavigationController【参考方案2】:

这应该可行。还有一些其他的问题。从您发布的代码中,您的视图控制器名称为:MyTableViewController,您提供的 nib 名称为:TableViewController。通常,当您使用 xib 创建视图控制器时,它具有相同的名称。如果您已经单独创建了 xib,请确保您已在界面构建器中连接了视图出口。应该可以的。

【讨论】:

我已经在界面生成器中连接了视图出口。 我已将控制器放入 UINavigationController 非常感谢所有

以上是关于UIViewController 无法查看 UITableViewController的主要内容,如果未能解决你的问题,请参考以下文章

未分配给父 UIViewController 视图属性时,UITableView 不滚动

关闭模态视图并调整父视图的大小?

修复具有许多状态的巨型视图控制器

Swift tableView分页

在 Xcode 11、SwiftUI 中呈现 UIViewController 的问题

有没有办法查看当前 UIViewController 是不是从另一个 UIViewController 的解雇中出现