Uitableview 如何显示在另一个类中实现的表视图
我希望通过只使用一个子类来生成自定义表视图,在其相应的视图中显示不同的内容。当表格视图充满数据时,我希望将整个视图发送到特定视图并显示它 在显示视图控制器上生成表视图时,没有问题。即使我可以将表视图从显示视图控制器传输到另一个视图,但是当我尝试在另一个类中生成表视图并尝试从根视图控制器调用它时,我只得到一个初始化但为空的表视图 代码如下: tableViewGenerator.hUitableview 如何显示在另一个类中实现的表视图,uitableview,uiviewcontroller,Uitableview,Uiviewcontroller,我希望通过只使用一个子类来生成自定义表视图,在其相应的视图中显示不同的内容。当表格视图充满数据时,我希望将整个视图发送到特定视图并显示它 在显示视图控制器上生成表视图时,没有问题。即使我可以将表视图从显示视图控制器传输到另一个视图,但是当我尝试在另一个类中生成表视图并尝试从根视图控制器调用它时,我只得到一个初始化但为空的表视图 代码如下: tableViewGenerator.h #import <UIKit/UIKit.h> @interface TableViewGenerato
#import <UIKit/UIKit.h>
@interface TableViewGenerator : UIViewController <UITableViewDataSource, UITableViewDelegate>
- (UITableView *) getTableViewForOtherVC;
@property (nonatomic, strong) IBOutlet UITableView *spreadSheet;
@end
显示vc.m
#import "DisplayingVC.h"
#import "TableViewGenerator.h"
@interface CTTOVViewController ()
@end
@implementation CTTOVViewController
- (void)viewDidLoad{
[super viewDidLoad];
UITableView *spreadSheet1;
if (!spreadSheet1) {
TableViewGenerator *tableVC = [[TableViewGenerator alloc]init];
spreadSheet1 = [tableVC getTableViewForOtherVC];
[self.view addSubview:spreadSheet1];
}
}
...
@end
我想我在填表时做错了什么,但我找不到什么。
任何提示都将不胜感激
提前感谢您似乎没有在任何地方设置表视图的数据源和委托属性,因此需要正确设置这些属性
另一方面,如果您生成一个模型,而不是UITableView本身,那么您要完成的工作可能会容易得多。我建议查看免费的Sensive TableView framework提供的模型,因为这些模型可以节省大量时间。当我在GetTableView for OtherVC方法中设置委托时,程序会崩溃。知道为什么吗?可能是因为您尚未实现“numberOfSectionsInTableView:”方法。崩溃日志显示了什么?0x10e209b:movl 8(%edx),%edi-Theread 1:EXC\u BAD\u访问(代码=2,地址0x8)。正如您所建议的那样,我还添加了numberOFSectionsInTableView,但它仍然与self.spreadSheet.DataSource=self相冲突。感谢您提供了合理的TableView提示。你使用过它吗?是的,我基本上用它为我的客户创建核心数据应用程序(有时也使用web服务,但我不太擅长)。与手工操作相比,节省了我大量的时间。
#import "DisplayingVC.h"
#import "TableViewGenerator.h"
@interface CTTOVViewController ()
@end
@implementation CTTOVViewController
- (void)viewDidLoad{
[super viewDidLoad];
UITableView *spreadSheet1;
if (!spreadSheet1) {
TableViewGenerator *tableVC = [[TableViewGenerator alloc]init];
spreadSheet1 = [tableVC getTableViewForOtherVC];
[self.view addSubview:spreadSheet1];
}
}
...
@end