我在Xcode中添加了一个UITableView到一个storyboard文件和相应的.m UIViewController(在属性检查器面板中设置为类类型)。我在UIViewController中有一个实例变量myTableView,我想将它分配给storyboard的UITableView,以便在代码中调用方法reloadData。
但是,当我尝试使用UIViewController的NSLog在init或viewDidLoad方法中打印出变量信息时,该变量为null。
UIViewController的示例代码: @property(非原子,强)IBOutlet UITableView * myTableView;
我正在初始化相应的UIViewController,如下所示:
self = [super initWithNibName:@"CorrespondingNibViewControllerName" bundle:nil];
我原本希望myTableView实例变量已经通过故事板初始化为UITableView但是这似乎没有发生......
答案 0 :(得分:0)
您可以认为在numberOfRows中分配tableview不是应该完成的方式。
您只需通过Interface Builder通过IBOutlet分配它,它将自动为您分配,无需任何额外代码。
答案 1 :(得分:0)
我将创建两个新文件myTableView.h和UTableView的myTableView.m子类。然后在.xib文件中,单击新添加的UITableView对象,并在Identity Inspector面板上为myTableView分配自定义类。
在你自己的UIViewController的subclass.m中,你可以在prepareForSeque:sender:方法中实例化myTableView对象。您还可以在UIViewController subclass.m下的viewDidLoad中添加要打印的代码。
不要忘记在属性检查器中为您的Segue标识符指定名称。