如何从 xib 文件加载视图控制器?

Posted

技术标签:

【中文标题】如何从 xib 文件加载视图控制器?【英文标题】:How do i load a viewcontroller from a xib file? 【发布时间】:2016-04-14 06:47:09 【问题描述】:

我尝试使用委托从自定义单元格加载视图控制器。但我从设置委托中得到零! 如果有人可以提供帮助,这是一个示例! 1. 在单元格中

protocol hotelFindDelegate
func modalDidFinished(modalText: String)

class hotelFindCell: UITableViewCell 

var delegate:hotelFindDelegate?
@IBAction func findButton(sender: AnyObject)        

    self.delegate!.modalDidFinished("HELLO")
    print("Damn nothing works")

2。在主视图中

class MainViewController:hotelFindDelegate 
let modalView = hotelFindCell()
override func viewDidLoad() 
    super.viewDidLoad()
    self.modalView?.delegate = self  


func modalDidFinished(modalText: String)
 let viewController:UIViewController = UIStoryboard(name: "Main", bundle:          nil).instantiateViewControllerWithIdentifier("HotelListVC") as UIViewController

 self.presentViewController(viewController, animated: false, completion: nil)
 self.modalView.delegate = self
 print(modalText)  

【问题讨论】:

你想从 XIB 加载 VC..?您给定的代码与您的问题不匹配。 是的!我正在尝试使用代表。不要介意代码。 如果你使用委托或做其他事情没关系,但你的代码至少应该符合你的要求。首先,您决定要从 XIB 或情节提要加载视图控制器..? 从xib加载viewcontroller 【参考方案1】:

要从 XIB 加载视图控制器,请执行以下步骤。

let settingVC : SettingsViewController = SettingsViewController(nibName :"SettingsViewController",bundle : nil)

稍后您可以推送相同的视图控制器对象,例如

self.navigationController?.pushViewController(settingsVC, animated: true)

【讨论】:

【参考方案2】:

NSBundle.mainBundle().loadNibNamed("viewController", owner: self, options: nil)

【讨论】:

以上是关于如何从 xib 文件加载视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

从 xib 加载视图控制器返回错误的帧

无法从视图控制器手动加载 xib?

如何将视图 XIB 作为子视图加载到视图控制器 XIB 中

从 xib 加载 iOS 不起作用

如何响应从 xib 加载的自定义视图中发生的操作?

如何创建从集合单元 xib 文件到集合视图控制器的出口