Es ist sehr einfach Sie müssen nur bedenken Sie headerTitle
in viewController1
und wenn Ihr wählen Sie eine Zeile in detailTableViewController
zeigen Sie sind gonna age
zu zeigen, address
und number
(Sie zeigen sich nur wünschen wollen Sie durch zusätzliche statische Zellen Erstellung und Platzierung das Etikett in it)
Ihre Modified Klasse.
Zuerst erklärt alle Eigenschaften als optional und optional in init() Methode auch
import Foundation
class BarProfile {
var HeaderImage: String?
var HeaderTitle: String?
var Age: String?
var Adress: String?
var Number: String?
var Time: String?
var Music: String?
var Info: String?
var Menu: String?
var More: String?
init(HeaderImage: String?, HeaderTitle: String?, Age: String?, Adress: String?, Number: String?, Time: String?, Music: String?, Info: String?, Menu: String?, More: String?) {
self.HeaderImage = HeaderImage
self.HeaderTitle = HeaderTitle
self.Age = Age
self.Adress = Adress
self.Number = Number
self.Time = Time
self.Music = Music
self.Info = Info
self.Menu = Menu
self.More = More
}
}
Bestücken der ViewController1
Tabellenansicht wie üblich und wenn der Benutzer eine beliebige Zelle tippt passieren, dass zu detailTableViewController
Objekt ausgewählt. Erstellen Sie den Übergang von Ihrer Tabellenansichtszelle in ViewController1
zu detailTableViewController
.
-Code in ViewController1:
class viewController1: UIViewController, UITableViewDataSource, UITableViewDelegate {
var barArray:[BarProfile] = []
var selctedIndexPath: NSIndexPath?
override func viewDidLoad() {
super.viewDidLoad()
for _ in 0...5 { // Creating dummy object for clear understanding.
let barObject = BarProfile(HeaderImage: "werw", HeaderTitle: "erqwrw", Age: "34", Adress: "qwerwer", Number: "32", Time: "time", Music: "qerqw", Info: nil, Menu: nil, More: nil)
barArray.append(barObject)
}
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return barArray.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell Identifier")! as UITableViewCell
cell.textLabel?.text = barArray[indexPath.row].HeaderTitle
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
selctedIndexPath = indexPath
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
// MARK: Navigation Methods
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "SegueIdentifier" {
let detailViewController = segue.destinationViewController as? detailTableViewController
detailViewController?.selectedBarObject = barArray[(selctedIndexPath?.row)!]
}
}
}
Code in Ihrem detailTableViewController:
class detailTableViewController: UITableViewController {
var selectedBarObject: BarProfile?
@IBOutlet var ageLabel: UILabel! // connect these outlets to your label in static cells.
@IBOutlet var addressLabel: UILabel!
@IBOutlet var numberLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
if selectedBarObject != nil {
showBarDetails()
} else {
// Do nothing
}
}
// You are going to use static cells so no need to implement table view data source methods
func showBarDetails() {
ageLabel.text = selectedBarObject?.Age
addressLabel.text = selectedBarObject?.Adress
numberLabel.text = selectedBarObject?.Number
}
}
Thanks :)
, wo die Antwort auf Ihre Frage ist @NewBie Fragen – Vinodh