我有以下问题。我创建了一个与上面的
非常相似的ViewController@interface MyViewController : UIViewController {
IBOutlet UITableView *myTableView;
}
@property (nonatomic, retain) IBOutlet UITableView *myTableView;
我已将Interface Builder上的myTableView链接到匹配的nib的UITableView。我已经将MyViewController子类化为创建YourViewController:
@interface YourViewController : MyViewController {
}
然后我从TabBarController加载一个标签项上的YourViewController。虽然我可以看到MyViewController确实在最后被调用,但模拟器上没有显示表视图。
我已经尝试调试MyViewController,看起来IBOutlet是零。
为什么?
答案 0 :(得分:0)
我遇到了继承和IBOutlets以及IBAction的主要问题。我建议你避免这种情况,并以另一种方式创建共享内容。
例如,在获取内存警告时,我受到了严重的攻击。当在基类和派生类中定义出口和动作时,它们没有正确地重新连接。
答案 1 :(得分:0)
可能根本没有加载MyViewController的nib文件。您是否在为YourViewController使用特定的nib文件?以及在哪种方式创建YourViewController。
您是否也可以尝试在YourViewController中定义“awakeFromNib”方法,然后从中调用[super awakeFromNib]?
但是要了解您的问题,您必须清楚地解释如何加载对象以及使用Nib的位置和位置?
答案 2 :(得分:0)
如果使用代码动态添加它,那么只有它可以工作。不使用Nib。
答案 3 :(得分:0)
UITableView
(即你的myTableView)需要代理数据源及其控制权。
并且您的控制器需要指向xib中表视图的链接。
在控制器的接口部分声明表委托协议。
使用IB,将xib中的TableView链接到所有者文件:delegates。
使用IB,将文件所有者myTableView链接到xib中的tableView。
我希望它会有所帮助。
答案 4 :(得分:-1)
假设您在MainWindow.xib中拥有整个导航堆栈
我有同样的问题,这为我解决了。