解决方法
是的,你当然可以获得一个视图控制器,但因为没有“附加”视图控制器,你最终会看到如下警告:
不鼓励在分离的视图控制器上呈现视图控制器
在我的情况下,警报控制器在屏幕上超短暂闪烁,然后消失.也许你可以稍微提高一点吗?
无论如何,这是我在操场上创建视图控制器的方式:
import UIKit import XCPlayground class RootViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() self.view.frame = CGRect(x: 0,y: 0,width: 350,height: 420) self.view.backgroundColor = UIColor.redColor() } } class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { var tableView: UITableView! let items = ["Hello 1","Hello 2","Hello 3"] var alertController : UIAlertController? { didSet { if alertController == nil { print("alertController set to nil") } else { print("alertController set to \(alertController)") } } } override func viewDidLoad() { super.viewDidLoad() self.view.frame = CGRect(x: 0,width: 320,height: 480) self.tableView = UITableView(frame:self.view.frame) self.tableView!.dataSource = self self.tableView!.registerClass(UITableViewCell.self,forCellReuseIdentifier: "cell") self.view.addSubview(self.tableView) } func tableView(tableView: UITableView,numberOfRowsInSection section: Int) -> Int{ return self.items.count; } func tableView(tableView: UITableView,cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{ let cell = tableView.dequeueReusableCellWithIdentifier("cell",forIndexPath: indexPath) as UITableViewCell cell.textLabel?.text = "\(self.items[indexPath.row])" return cell } override func viewDidAppear(animated: Bool) { alertController = UIAlertController.init(title: "My Title",message: "Testing in Playground",preferredStyle: .Alert) let okAction = UIAlertAction(title: "Ok",style: .Default) { (_) -> Void in // Some action here print("hit okay button") } alertController!.addAction(okAction) ctrl.presentViewController(alertController!,animated: false,completion: { print("done presenting") }) } } var ctrl = ViewController() var rootVC = RootViewController() rootVC.addChildViewController(ctrl) rootVC.view.addSubview(ctrl.view) XCPlaygroundPage.currentPage.liveView = rootVC.view
而我在这里做的是创建一个“根视图控制器”,添加一个带有表的子视图控制器(试图让一些视图控制器“附加”到其他东西)然后我试图呈现一个警报控制器在那.