我目前工作的一個主的DetailView應用程序和我卡在如何使數據變化作出的DetailView變化數據....如何通過indexPath
我看到關於如何將偉大的教程做到這一點:
但是傢伙使用空白的ViewController &我使用的是TableViewController使用靜態細胞,所以這是行不通的。
我想手動將數據,如
var Label1Data = ["You Tapped Cell 1,You Tapped Cell 2,You Tapped Cell 3"]
,它會在顯示的DetailView通過索引路徑,如果我按了第一單元第一個數據將在標籤顯示了...我知道在這裏使用靜態單元並不理想,但我想用它們來設計明智的。
如果有人能夠最終告訴我,我將如何成功地提供數據,就像我上面所說的那樣,以及教程是如何實現的。
MasterViewController代碼:
import UIKit
import AVFoundation
class BarsViewController: UITableViewController,UISearchResultsUpdating,UISearchBarDelegate,UISearchDisplayDelegate,UITabBarControllerDelegate{
@IBOutlet var tableViewController: UITableView!
var audioPlayer = AVAudioPlayer()
var sel_val : String?
// TableView Data :
struct User {
var name: String
var streetName: String
var image: UIImage?
}
var allUsers: [User]!
var filteredUsers: [User]!
func createUsers(names: [String], streets: [String], images: [UIImage?]) -> [User] {
var users = [User]()
guard names.count == streets.count && names.count == images.count else { return users }
for (index, name) in names.enumerated() {
let user = User(name: name, streetName: streets[index], image: images[index])
users.append(user)
}
return users
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if tableView == self.tableView {
return self.names.count
} else {
return self.filteredUsers.count
}
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
let cell = self.tableView.dequeueReusableCell(withIdentifier: "CustomCell", for: indexPath) as! CustomCell
let user:User!
if tableView == self.tableView {
user = allUsers[indexPath.row]
} else {
user = filteredUsers[indexPath.row]
}
cell.photo.image = user.image
cell.name.text = user.name
cell.streetName.text = user.streetName
return cell
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){
let object = self.storyboard?.instantiateViewController(withIdentifier: "BarProfileTableViewController") as! BarsProfile
let user:User!
if tableView == self.tableView {
user = allUsers[indexPath.row]
} else {
user = filteredUsers[indexPath.row]
}
print("username : \(user.name)")
print("streetName : \(user.streetName)")
MyIndex = indexPath.row
object.barImage = user.image!
object.barName = user.name
object.streetName = user.streetName
self.navigationController?.pushViewController(object, animated: true)
}
的DetailView的代碼:
import UIKit
import AVFoundation
import MapKit
class BarsProfile: UITableViewController,MKMapViewDelegate {
@IBOutlet var Distance: UILabel!
@IBOutlet var headerImage: UIImageView!
@IBOutlet var OnlineMenu: UIButton!
@IBOutlet var Address: UILabel!
@IBOutlet var ProfileMapView: MKMapView!
@IBOutlet var BarNameLBL: UILabel!
@IBOutlet var streetNameLBL: UILabel!
@IBOutlet var MusicLabel: UILabel!
@IBOutlet var KindOfBarCell: UITableViewCell!
var barName = String()
var barImage = UIImage()
var streetName = String()
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
BarNameLBL.text = barName
streetNameLBL.text = streetName
navigationItem.title = barName
}
問題是不可理解的 –
教程做什麼,但只是在TableViewController靜態單元格 –
你到目前爲止嘗試過什麼? –