storyboard 如上圖
右上方有一個退出的 bar button item
實作的功能就是當按下後...畫面跳到login activity
@IBAction func logoutButton(_ sender: UIBarButtonItem) {
performSegue(withIdentifier: "logoutSegue", sender: self)
}
實作一個 getAccount(),, 列出所有的用戶名, 存到 username 的陣列
func getAccount(){
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName : "Users")
request.returnsObjectsAsFaults = false
do{
let results = try context.fetch(request)
if results.count > 0 {
for result in results as! [NSManagedObject]{
if let user = result.value(forKey: "username") as? String{
if user != currentuser{
username.append(user)
}
}
}
}
}catch{
print("Could not fetch results")
}
//print(username)
}
修改table view的函式
override func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return username.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
let user = username[indexPath.row]
// Configure the cell...
cell.textLabel?.text = user
return cell
}
回到一開始的 viewcontroller
要把目前登錄的user name 傳過來
當呼叫 prepareSuger... 會先呼叫 prepare
所以我們在這邊加入我們要的動作
把 viewcontroller 的 loginUser 傳到 Tablecontroller 的 currentUser
這裏記住要二次轉換...
先轉換成 navigtionController
在套用 navigtionController. navigtionController.topViewController -> 轉換成 TableViewController
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showUserTable" {
//let usertTable = segue.destination as! TableViewController
// usertTable.currentuser = loginUser
let navigtionController = segue.destination as! UINavigationController
let userTable = navigtionController.topViewController as! TableViewController
userTable.currentuser = loginUser
}
}
沒有留言:
張貼留言