为表视图控制器创建nib文件

时间:2009-10-07 17:11:39

标签: iphone interface-builder uitableview

5 个答案:

答案 0 :(得分:7)

  1. 在Xcode中创建一个TableViewController。
  2. 在Interface Builder中创建一个空的nib文件。
  3. 从步骤1将File的Owner Class属性设置为TableViewController。
  4. 将TableView添加到空的nib文件中。
  5. 将文件的所有者视图属性设置为步骤4中的TableView。
  6. 根据需要自定义IB中的TableView。
  7. 在Xcode中覆盖您创建的TableViewController的initWithNibName:bundle:方法,并使用类似于以下内容的代码:

  8. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
        if (self = [super initWithNibName:@"MyNibName" bundle:nibBundleOrNil]) {
            // Custom initialization
        }
        return self;
    }
    

答案 1 :(得分:2)

我昨晚遇到了同样的问题,并在尝试搜索答案时发现了这篇文章。我最终解决了它。

基本上我打开了错误的XIB文件(我希望main_window.xib,而不是视图控制器xib)

我从主xib切下所有控件,将它们粘贴到控制器xib中,重新排列所有内容,重新连接所有出口/操作并且警告消失了:)

希望这有助于某人:)

答案 2 :(得分:1)

Eagle,在创建新文件时,选择“UIViewController子类”图标。有一个复选框,使其成为UITableViewController子类,就在复选框上方,包含XIB文件。

答案 3 :(得分:1)

你有两个地方,你的UITableViewController出现在Interface Builder中。

(1)它以控制器自己的名字显示在笔尖中。

(2)它在另一个对象的nib中显示为控制器对象,通常是MainWindow。

你的问题在(2)。在“接口”构建器中,有两种方法可以为UITableViewController设置tableview。首先,您可以在MainWindow中的控制器下创建一个UITableView,并将其连接到控制器的view属性。其次,您可以在属性窗格中打开检查器,并在列出的“NibName”弹出菜单中选择控制器笔尖的名称。

您不能同时使用这两个系统,因为第一个从MainWindow nib文件加载视图,第二个从控制器的单独nib文件加载完全不相关的视图。

这是使用Interface Builder难以追踪的令人抓狂的错误之一。

答案 4 :(得分:0)

我将使用“新文件”iPhone UI模板创建一个选中了xib文件选项的TableViewController,而不是完成所有这些操作。然后你得到一个控制器和xib文件都正确连接在一起。