2

我有以下问题。我已经创建了一个与上面非常相似的 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 为零。

这是为什么?

4

5 回答 5

0

可能 MyViewController 的 nib 文件根本没有加载。您是否为 YourViewController 使用特定的 nib 文件?以及您以哪种方式创建 YourViewController。

您还可以尝试在 YourViewController 中定义一个“awakeFromNib”方法,然后从中调用 [super awakeFromNib] 吗?

但是,要了解您的问题,您必须清楚地解释如何加载对象以及是否以及在何处使用 Nibs?

于 2011-02-07T13:25:05.497 回答
0

我在继承、IBOutlets 和 IBAction 方面遇到了重大问题。我建议您避免这种情况,并以另一种方式创建共享内容。

例如,当我收到内存警告时,我受到了严重的错误打击。在基类和派生类中定义插座和操作时,它们没有正确重新连接。

于 2011-02-07T13:12:13.933 回答
0

如果您使用代码动态添加它,那么只有它会起作用。不使用笔尖。

于 2011-02-07T13:32:06.620 回答
0

(即您的UITableViewmyTableView)需要数据源及其控制的委托。并且您的控制器需要指向 xib 中的表视图的链接。

  1. 在控制器的接口部分声明表委托协议。

  2. 使用 IB,将 xib 中的 TableView 链接到所有者文件:委托。

  3. 使用 IB,将文件所有者 myTableView 链接到 xib 中的 tableView。

我希望它会有所帮助。

于 2011-02-07T14:01:14.883 回答
-1

假设您在 MainWindow.xib 中有整个导航堆栈

  • 打开 MainWindow.xib
  • 选择 YourViewController (或任何你的子类 UITableViewController 的控制器被调用)
  • 选择属性检查器
  • 确保“NIB 名称”属性选择了正确的 YourViewController(或任何名称)

我有这个完全相同的问题,这为我解决了。

于 2012-04-06T05:01:56.837 回答