【发布时间】:2015-10-27 23:56:01
【问题描述】:
我是swift 的新手。我正在使用storyboard,根据登录信息,我将UIViewController 更改为加载。下面是sn-p。
class func viewControllerWithName(name: String) -> UIViewController?
{
let storyboard = mainStoryboard()
let viewController: AnyObject! = storyboard.instantiateViewControllerWithIdentifier(name)
return viewController as? UIViewController
}
func setUpController {
let viewController: AnyObject!
if self.user() == "admin" {
viewController:AdminViewController = self.viewControllerWithName("admin") !as! AdminViewController
} else {
viewController:UserViewController = self.viewControllerWithName("user") !as! UserViewController
}
self.addChildViewController(viewController)
viewController.view.frame = container.frame
self.view.addSubview(viewController.view)
viewController.didMoveToParentViewController(self)
}
我尝试了很多方法,但是我无法对viewController 进行类型转换。我得到错误,说
Cannot invoke 'addChildViewController' with an argument list of type '(AnyObject!)'
实现此目的的正确格式是什么?
【问题讨论】:
-
尝试将
let viewController: AnyObject!更改为let viewController: UIViewController! -
没用。它在
setUpController()的第 3 行给了我错误,它说,一行上的连续语句必须用 ';'' 分隔,建议我添加 ';'在viewController';':AdminViewController之间。第 5 行也一样。
标签: ios iphone swift ios7 ios8