我在我的MainViewController中使用UITableViewController作为弹窗。我想要实现的是检测tableview点击并在我的MainViewController中执行一些操作。我如何实现这一目标?如何检测弹出窗口中的点击事件? (Swift)
这是我如何创建酥料饼:
let count = sender.dropdownItems?.count
let storyboard : UIStoryboard = UIStoryboard(name: "Main",bundle: nil)
var menuViewController: MoreTableViewController = storyboard.instantiateViewControllerWithIdentifier("moreTable") as! MoreTableViewController
menuViewController.data = sender.dropdownItems!
menuViewController.modalPresentationStyle = .Popover
menuViewController.preferredContentSize = CGSizeMake(300, 44*CGFloat(count!))
let popoverMenuViewController = menuViewController.popoverPresentationController
popoverMenuViewController?.permittedArrowDirections = .Any
popoverMenuViewController?.delegate = self
popoverMenuViewController?.sourceView = sender
presentViewController(menuViewController,animated: true,completion: nil)
这是MoreTableViewController:
import UIKit
class MoreTableViewController: UITableViewController {
//var data: [MoreItem]?
var data = [MoreItem]()
override func viewDidLoad() {
super.viewDidLoad()
tableView.scrollEnabled = false
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("moreCell", forIndexPath: indexPath) as! MoreTableViewCell
cell.label.font = UIFont.fontAwesomeOfSize(17)
cell.label.textColor = UIColor.init(hexString: MyConstants.COLOR_GREY)
cell.label.text = data[indexPath.row].label
return cell
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
print("Do something in MainViewController")
}
}
您的意思是将数据传递回以前的视图控制器? – jo3birdtalk