STPopup如何在Swift中初始化?

时间:2015-11-30 16:15:23

标签: ios swift

我正在玩这个library。它说我必须用代码

初始化它
STPopupController *popupController = [[STPopupController alloc] initWithRootViewController:[ViewController new]];
[popupController presentInViewController:self];

我尝试使用以下代码执行此操作(HelpersNear是UIViewController的名称)

var popup = STPopupController(rootViewController: HelpersNear)
popup.presentInViewController(self)

但作为回应我收到编译错误,这使我从构造函数中删除rootViewController。删除后,我收到另一个错误。 enter image description here

我做错了什么?

2 个答案:

答案 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样式弹出窗口放置示例。

  1. 在Storyboard中创建UIViewController或UITableViewController(您可以使用github上可用的STPopup库的Example Project(STPopupExample)中的示例完成)。

  2. 将视图控制器的故事板ID设置为f.ex。:MultiselectionTableViewController

  3. 要显示此弹出视图,请使用以下代码:

        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)
        })
    
  4. dispatch_async块中显示弹出窗口非常重要。它可以防止显示新视图控制器的延迟。