我正在玩这个library。它说我必须用代码
初始化它STPopupController *popupController = [[STPopupController alloc] initWithRootViewController:[ViewController new]];
[popupController presentInViewController:self];
我尝试使用以下代码执行此操作(HelpersNear是UIViewController的名称)
var popup = STPopupController(rootViewController: HelpersNear)
popup.presentInViewController(self)
但作为回应我收到编译错误,这使我从构造函数中删除rootViewController
。删除后,我收到另一个错误。
我做错了什么?
答案 0 :(得分:1)
试试这段代码:
var popup = STPopupController(rootViewController: HelpersNear())
popup.presentInViewController(self)
例如:
class FooViewController: UIViewController {
let name: String
init() {
name = "Bar"
super.init(nibName: nil, bundle:nil)
}
required init(coder: NSCoder) {
super.init(coder: coder)
}
}
答案 1 :(得分:1)
在Swift中使用这个库很简单。 下面我使用STPopupController为BottomSheet样式弹出窗口放置示例。
在Storyboard中创建UIViewController或UITableViewController(您可以使用github上可用的STPopup库的Example Project(STPopupExample)中的示例完成)。
将视图控制器的故事板ID设置为f.ex。:MultiselectionTableViewController
要显示此弹出视图,请使用以下代码:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("MultiselectionTableViewController") as! MultiselectionTableViewController
vc.title = "Choose your options"
vc.items = ["First element", "Second element", "Third element"]
vc.delegate = self
let popup = STPopupController(rootViewController: vc)
popup.style = STPopupStyle.BottomSheet
dispatch_async(dispatch_get_main_queue(), {
popup.presentInViewController(self.parentViewController)
})
在dispatch_async
块中显示弹出窗口非常重要。它可以防止显示新视图控制器的延迟。