У меня есть контроллер панели управления с двумя путями. Один - settingController
Другой - loginController
и contactListController. When i run the program the entry pint is set to
contactListController and if login is false apps shown
loginController`. После того, как значение входа установлено в значение true, и loginController будет уволен. Внизу у меня есть контроллер панели вкладок: ContactList | НастройкиКак вызвать функцию делегата без текущего контроллера
Когда я перехожу к настройкам, у меня есть кнопка LOGOUT
, я хотел бы сделать это, когда я коснусь этого, как установить значение login на false? у меня нет SEGUE между ContactList и SettingController
Это мой ContactListController
class ContactsTableViewController: UITableViewController, SettingsControllerDelegate {
let settingsController: SettingsController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("settingsController") as! SettingsController
override func viewDidLoad() {
super.viewDidLoad()
settingsController.delegate = self
}
func didLogoutSuccessfully() {
loggedIn = false
}
}
Это настройки контроллера
protocol SettingsControllerDelegate {
func didLogoutSuccessfully()
}
class SettingsController: UITableViewController {
var delegate: SettingsControllerDelegate?
fun tapButton() {
self.delegate?.didLogoutSuccessfully() // Set login as false
}
если я добавил
override func viewDidLoad() {
super.viewDidLoad(
settingsController.delegate = self
presentViewController(settingsController, animated: true, completion: nil)
}
Сначала появляется настройка контроллера. Как я могу изменить это значение по-другому?
UPDATE в списке контактов у меня есть
var loggedIn: Bool = false {
didSet {
if loggedIn == true {
self.configureView()
}
}
}
override func viewDidAppear(animated: Bool) {
if loggedIn == false {
performSegueWithIdentifier("showLogin", sender: nil)
}
//tableView.reloadData()
}
как насчет того, чтобы сделать bool общим экземпляром? – Lukas
Я обновил свой вопрос – Wraith
Почему бы не использовать NSUserdefaults? – Sam