2017-02-23 127 views
0

Например, у меня есть ViewController1 с объектом и данными UITableview.Тогда я буду нажимать на другой контроллер от ViewController1 до ViewController2.UITableview потерял ссылку после контроллера pop view

Моя проблема, когда я пытаюсь выскочить из ViewController2 в ViewController1 затем UITableview объекта возвращения nil и мое приложение crashed.This проблема часто бывает.

Я использую раскадровку для назначения UITableview. И я использую swift 2.0 как язык программирования.

Ниже мой исходный код, где мое приложение разбилось.

override func viewDidAppear(animated: Bool) 
{ 
    super.viewDidAppear(true) 
    btnRightBarBtnItem.image = UIImage(named : "Home") 
    btnRightBarBtnItem.target = self 
    btnRightBarBtnItem.action = #selector(self.btnHomeAction) 

    refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh") 
    refreshControl.addTarget(self, action: #selector(SelectPackingItemsViewController.refresh(_:)), forControlEvents: UIControlEvents.ValueChanged) 
    packingItemsTableView.addSubview(refreshControl) 
} 

приложение разбился на "packingItemsTableView.addSubview (refreshControl)" этой линии.

Он возвращается в журнале (lldb) po self.packingItemsTableView! Неустранимая ошибка: неожиданно найдено нуль при развертывании. Необязательное значение

Управление обновлением - это не что иное, как «объект UIRefreshControl()», который не равен нулю.

+3

Добавьте код, где приложение разбилось. –

+3

Разделите журнал сбоев или ваш источник. Удалены ли какие-либо представления программно во время событий жизненного цикла? – Krunal

+0

объявите и инициализируйте свой объект 'refreshControl' в' viewDidAppear' и снова попробуйте запустить код ИЛИ переместите весь код 'viewDidAppear' в' viewDidLoad', –

ответ

0

проверить, сохраняются ли данные для табличного представления после того, как вы поместите второй контроллер, может быть, не получить его источник данных. сохраните сильную ссылку для массива, который содержит данные таблицы.