嘿嘿!
我想展示一个带有 Action 的 ViewController(在自定义单元格中的 UIButton 的tappedInside)。在这种情况下,我不能只是从自定义单元格中的 UIButton 控制拖动到 NavigationController(ViewController 是嵌入的)。
我如何才能意识到在表格视图的一行中的按钮(在自定义单元格中)上的“tappedInside”将显示一个新的 ViewController?
谢谢!
嘿嘿!
我想展示一个带有 Action 的 ViewController(在自定义单元格中的 UIButton 的tappedInside)。在这种情况下,我不能只是从自定义单元格中的 UIButton 控制拖动到 NavigationController(ViewController 是嵌入的)。
我如何才能意识到在表格视图的一行中的按钮(在自定义单元格中)上的“tappedInside”将显示一个新的 ViewController?
谢谢!
使用 Xcode 6 beta 7,您的子类UITableViewController
和UITableViewCell
子类将如下所示:
import UIKit
class CustomCell: UITableViewCell {
@IBOutlet weak var button: UIButton!
}
class TableViewController: UITableViewController {
//Set method for UIButton
func push(sender: AnyObject) {
navigationController!.pushViewController(storyboard!.instantiateViewControllerWithIdentifier("ViewController") as ViewController, animated: true) //where ViewController is the name of the UIViewController and "ViewController" the identifier you set for it in your Storyboard
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as CustomCell
cell.selectionStyle = .None
//Set button's target
cell.button.addTarget(self, action: "push:", forControlEvents: .TouchUpInside)
return cell
}
}
当您单击具有委托的单元格时,您可以触发:
func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
// some code
}
要打开一个新的视图控制器,如果你使用故事板,你可以试试这个:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let newVC = storyboard.instantiateViewControllerWithIdentifier("myIdentifier") as youClassController
self.presentViewController(newVC, animated: false, completion: nil)
希望有所帮助