在Swift中将View控制器添加为子视图

时间:2014-06-17 07:10:47

标签: macos cocoa swift xcode6

我试图使用swift构建一个简单的计算器应用程序。我创建了两个带有基本和高级选项的视图控制器。在Obj-C早期曾经这样做过

[[AViewController alloc] initWithNibName:@"nibName" bundle:nil]

在swift中我甚至无法导入我的新视图控制器。但我仍然可以声明为var aViewController:AViewController?并使用它。但是我被困在加载笔尖

我尝试使用AViewController(nibName: "nibname", bundle: nil),但所有内容都会导致编译错误Could not find an overload for __conversion that accepts the supplied arguments

2 个答案:

答案 0 :(得分:3)

试试这个,

AViewController(nibName: "nibname", bundle: NSBundle.mainBundle())

这对我来说非常适合。

声明: SWIFT UINib 类参考)

init(nibName name: String!,
      bundle bundleOrNil: NSBundle!) -> UINib

声明: SWIFT UIViewController 类参考)

init(nibName nibName: String!,
      bundle nibBundle: NSBundle!)

感叹号有效地说,“我知道这个选项肯定有价值;请使用它。“这被称为强制解包可选的值

这就是原因,我们无法通过" nil"作为第二个参数,即捆绑

干杯..!

答案 1 :(得分:2)

nilNSBundle.mainBundle()代替它时,{{1}}看起来像是一个问题。