Ios 如何将基于xCode xib的视图控制器转换为故事板视图控制器?

Ios 如何将基于xCode xib的视图控制器转换为故事板视图控制器?,ios,swift,swift2,xcode7,Ios,Swift,Swift2,Xcode7,我遵循的是一个Swift教程,该教程使用xib文件作为视图控制器,并试图将其放入故事板中。我使用的是xCode7和Swift 2.1,尤其是下面的代码,我遇到了一些问题: var cell:CatsTableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? CatsTableViewCell if(cell == nil) { cell = NSBund

我遵循的是一个Swift教程,该教程使用xib文件作为视图控制器,并试图将其放入故事板中。我使用的是xCode7和Swift 2.1,尤其是下面的代码,我遇到了一些问题:

var cell:CatsTableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? CatsTableViewCell

        if(cell == nil) {
            cell = NSBundle.mainBundle().loadNibNamed("CatsTableViewCell", owner: self, options: nil)[0] as? CatsTableViewCell
        }
我如何将上面的这一个转换为一个用于项目中的故事板

下面我也遇到了一些问题。不久前我就开始使用xCode了,我对下面代码的含义有点困惑。我试着用谷歌搜索它,但我刚刚得到了非常详细的解释,作为一个初学者很难理解

required init(coder aDecoder:NSCoder)
    {
        fatalError("NSCoding not supported")  
    }
在下面,您可以找到视图控制器的完整代码和完整教程的链接。希望有人能帮助我。提前谢谢

更改以下代码

 var cell:CatsTableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? CatsTableViewCell

    if(cell == nil) {
        cell = NSBundle.mainBundle().loadNibNamed("CatsTableViewCell", owner: self, options: nil)[0] as? CatsTableViewCell
    }

对于“必需”关键字检查链接,请更改下面的代码

 var cell:CatsTableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? CatsTableViewCell

    if(cell == nil) {
        cell = NSBundle.mainBundle().loadNibNamed("CatsTableViewCell", owner: self, options: nil)[0] as? CatsTableViewCell
    }


对于“必需”关键字检查链接,您的viewController应该具有tableview的属性,如下所示:

@IBOutlet var tableview : UITableView?

然后在故事板中,将tableview连接到该插座(关于连接插座的教程比比皆是,如果遇到问题,请告诉我)。然后,在viewDidLoad中,调用与上面相同的方法:self.tableView.registerNib等。

您的viewController应该具有tableView的属性,如下所示:

@IBOutlet var tableview : UITableView?

然后在故事板中,将tableview连接到该插座(关于连接插座的教程比比皆是,如果遇到问题,请告诉我)。然后,在viewDidLoad中,调用与上面相同的方法:self.tableView.registerNib等。

还请注意,一旦使用storyboard,您就不需要标记为“必需”的init方法-您应该去掉init方法,改为使用viewDidLoad进行设置。谢谢您的回答!我已将var“…”更改为let“.”,并删除了init方法。现在在viewDidLoad中有:tableView.RegisterInB(UINib(nibName:“CatsTableViewCell”,bundle:nil),forCellReuseIdentifier:cellIdentifier)我如何设置viewDidLoad@PBERGSON您的viewController应该有一个tableview属性,如下所示:还要注意的是,一旦您使用storyboard,您就不需要标记为“必需”的init方法-您应该去掉init方法,而使用viewDidLoad进行设置。谢谢您的回答!我已将var“…”更改为let“.”,并删除了init方法。现在在viewDidLoad中有:tableView.RegisterInB(UINib(nibName:“CatsTableViewCell”,bundle:nil),forCellReuseIdentifier:cellIdentifier)我如何设置viewDidLoad@pbergson您的viewController应该为tableview设置一个属性,如下所示:谢谢@pbergson,我已经这样做了,但我收到了以下错误:“nsInternalInconsistencException”,原因:“无法将标识符为CatsTableViewCell的单元格出列-必须为标识符注册nib或类,或者在情节提要中连接原型单元格”。。。。。但如果我使用以下代码:let cell=tableView.dequeueReusableCellWithIdentifier(“CatsTableViewCell”,forIndexPath:indexPath)作为!CATSTABLEVEWCELL。。。。。该应用程序不会崩溃,但不会在单元格中显示图像。谢谢@pbergson,我已经这样做了,但我收到了以下错误:“NSInternalInconsistencyException”,原因:“无法将标识符为CatsTableViewCell的单元格出列-必须为标识符注册nib或类,或在情节提要中连接原型单元格”。。。。。但如果我使用以下代码:let cell=tableView.dequeueReusableCellWithIdentifier(“CatsTableViewCell”,forIndexPath:indexPath)作为!CATSTABLEVEWCELL。。。。。应用程序不会崩溃,但不会在单元格中显示图像。