2015-08-07 2 views
1

Я работаю над приложением, где он начинается с tableViewController, который загружает и отображает данные, хранящиеся в базе данных Realm. У меня есть это, поэтому я могу создать новую запись в своей базе данных Realm в отдельной сцене, а кнопка сохранения разворачивается обратно в начальный tableView.Автоматический перезапуск TableViewController On Rewind

У меня есть так, что tableViewController перезагрузит таблицуView при выводе вниз (something I Learned here, second answer down), но мне было бы лучше, если бы tableView автоматически перезагрузился бы автоматически, показывая все данные в моей базе данных, включая мою новую запись. Может кто-нибудь, пожалуйста, направить меня в учебник, который научит меня, как это делается.

Дополнительная информация: Мое приложение встроено в контроллер навигации. Кнопка сохранения расположена на нижней панели инструментов.

+0

Спасибо за ответы. Все трое работают хорошо. –

+0

Вы можете принять любой ответ .. :) –

ответ

1

Попробуйте перезагрузить свои tabledata в viewWillAppear в начальном (настольном) контроллере.

override func viewWillAppear(animated: Bool) { 
    self.tableView.reloadData() 
} 

Или снова вызвать функцию, через которую загружаемые данные из Realm как

override func viewWillAppear(animated: Bool) { 
     getMyData() //or whatever your function name is 
} 
2

Вы можете использовать NSNotification для этого.

Прежде всего в вашем tableViewController добавить это в методе viewDidLoad:

override func viewDidLoad() { 
    super.viewDidLoad() 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "refreshTable:", name: "refresh", object: nil) 
} 

И это будет вызывать один метод из вашего класса:

func refreshTable(notification: NSNotification) { 

    println("Received Notification") 
    tableView.reloadData() //reload your tableview here 
} 

Так добавьте этот метод тоже.

Теперь в контроллере следующего вида, где вы добавляете новые данные в базу данных добавьте это в вас unWindSegue функцию:

NSNotificationCenter.defaultCenter().postNotificationName("refresh", object: nil, userInfo: nil) 

Надеется, что это поможет

0

Если вы используете раскадровку разматывания SEGUE, попробуйте использовать

func unwindSegue(segue:UIStoryboardSegue) { 
    if segue.identifier == "identifier" { 
     getData() 
     self.tableView.reloaddata() 
    } 
} 
Смежные вопросы