Swift:如何将信息传递给弹出视图?

时间:2016-12-30 13:42:00

标签: ios swift popup

我正在尝试使用github扩展名(https://github.com/Orderella/PopupDialog)将信息传递给我的自定义PopUpViewController。 Popup使用一个名为PopUpViewController的视图控制器(带有一个xib文件),PopUp启动的视图控制器叫做MainViewController。

传递给PopUpViewController的信息将是一个String类型的数组(名为:popUpArray),用于在表中显示包含的信息(名为:tableView)。

MainViewController代码:

func showCustomDialog(_ sender: UIButton) {

    // Create a custom view controller
    let PopUpVC = PopUpViewController(nibName: "PopUpViewController", bundle: nil)

    // Create the dialog
    let popup = PopupDialog(viewController: PopUpVC, buttonAlignment: .horizontal, transitionStyle: .bounceDown, gestureDismissal: true)


    // Create second button
    let buttonOne = DefaultButton(title: "Ok", dismissOnTap: true) {

    }

    // Add buttons to dialog
    popup.addButton(buttonOne)

    // Present dialog
    present(popup, animated: true, completion: nil)
}

PopUpViewController代码:

 import UIKit

class PopUpViewController: UIViewController {

@IBOutlet weak var imageView: UIImageView!

@IBOutlet weak var titleLabel: UILabel!

@IBOutlet weak var tableView: UITableView!

2 个答案:

答案 0 :(得分:3)

只需在名为PopUpViewController的{​​{1}}上声明一个类型为data的新变量。

在此之后,当您创建viewController时,您可以将其传递给控制器​​。之后,Array<String>中只是一个简单的tableView实现来显示数据。

使用PopUpViewController参数扩展PopUpViewController

导入UIKit

data

在调用class PopUpViewController: UIViewController { @IBOutlet weak var imageView: UIImageView! @IBOutlet weak var titleLabel: UILabel! @IBOutlet weak var tableView: UITableView! // Data variable public var data: [String] = [] } 函数

时添加数据
showCustomDialog()

答案 1 :(得分:0)

在PopUpViewController中创建一个方便的init,如下面的

convenience init(nibName: String, arrayOfString: [String] ){
  self.data = arrayOfString
  self.init(nibName: nibName, bundle:nil)
}

然后在MainViewController上调用你刚刚创建的方便init,就像这样

// Create a custom view controller let PopUpVC = PopUpViewController("PopUpViewController", arrayOfString: ["String1", "String2"])