私は、ユーザーが一番上の名前の1つを押すようにしようとしています。彼らがそうすると、子TableViewControllerはブールcurrentUserIsLoggedInUser
を変更します。ただFactsController
から送信する方法がある場合親ViewControllerから埋め込まれたTableViewControllerのデータを変更します
class FactsTableViewController: UITableViewController {
let cellID = "factCell"
var currentUserIsLoggedInUser: Bool = false
//var currentUserName: String = ""
var facts = [Fact]()
var currentUser: User!
var soUser: User!
let ref: FIRDatabaseReference = FIRDatabase.database().reference()
override func viewDidLoad() {
if currentUserIsLoggedInUser {
// make tableview for the current user
}
else {
// make tableview for the friend
}
}
func refresh() {
self.tableView.reloadData()
}
}
:私は、コードを持っている私のFactsTableViewController
で次に
class FactsController: UIViewController {
@IBOutlet weak var currentUserName: UIButton!
@IBOutlet weak var friendUserName: UIButton!
var currentPersonSelectedIsCurrentUser: Bool = false
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "ChangePersonSegue") {
let embed: FactsTableViewController = segue.destinationViewController as! FactsTableViewController
embed.currentPersonSelectedIsCurrentUser = self.currentPersonSelectedIsCurrentUser
embed.refresh //this doesn't call the function like id want it to
}
}
func changeFactList() {
//segue for table view controller for ___
// call prepareForSegue
performSegueWithIdentifier("ChangePersonSegue", sender: self)
}
override func viewDidLoad() {
//changethings(user)
}
@IBAction func tappedUserName (sender: UIButton) {
if currentPersonSelectedIsCurrentUser {
}
else {
currentPersonSelectedIsCurrentUser = true
changeFactList()
currentUserName.titleLabel?.textColor = UIColor.lightGrayColor()
friendUserName.titleLabel?.textColor = UIColor.darkGrayColor()
}
}
@IBAction func tappedFriendName (sender: UIButton) {
if currentPersonSelectedIsCurrentUser {
currentPersonSelectedIsCurrentUser = false
changeFactList()
// change text color
currentUserName.titleLabel?.textColor = UIColor.darkGrayColor()
friendUserName.titleLabel?.textColor = UIColor.lightGrayColor()
}
else {
}
}
}
:私のFactsController
で
私は、コードを持っていますボタンが押されたときにブール値をとると、すべてが簡単になります。
ブール値は変更されません。全く新しいビューコントローラ – Wain
他のViewControllerに、以前のコントローラからの何かが発生したことを知り、ブール値を変更する必要がありますか? –