我正在尝试使用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!
答案 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"])