Не удалось вызвать встроенный переход во второй раз

Я пытаюсь создать приложение, похожее на Instagram, и я застрял в части комментариев. В левой части изображения это VC со встроенным представлением контейнера с UITextField и UIButton внизу. Представление контейнера встроено в UITableView, который содержит все изображение профиля пользователя, имя пользователя и сам комментарий.

При первой загрузке он может отлично захватывать все комментарии к этому сообщению со стороны сервера и отлично отображаться. Однако я не могу снова вызвать переход, используя prepareForSegue для обновления UITableView. Я получаю сообщение об ошибке:

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

введите здесь описание изображения

Ниже приведены мои коды:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "getCommentSegue"){
        if let destination = segue.destinationViewController as? CommentsTVC{
            if(!self.commentID.isEmpty){
                destination.UpdateCommentRow(self.profileImage, commentID: self.commentID, comment: self.postComment, dateTimePost: self.dateTime)
                self.commentID = String()
            }
            destination.postID = self.postID
        }
    }
}

И после успешного добавления строки в мою базу данных в dispatch_async:

self.performSegueWithIdentifier("getCommentSegue", sender: nil)

Я также заметил, что когда он добавляет новый комментарий к моему существующему объекту, в котором хранятся все комментарии, счетчик для него равен 0. Я полагаю, что он берет новую ссылку на объект. Пожалуйста помоги!


person jo3birdtalk    schedule 26.05.2016    source источник
comment
если я не вызываю свои контейнерные представления таким образом, как я могу обновить табличное представление новыми комментариями? getCommentSegue — это идентификатор этой ссылки, который я установил в IB.   -  person jo3birdtalk    schedule 26.05.2016
comment
@ThePumpingLama Приведенные выше коды написаны внутри левой части VC. В то время как мой объект для хранения комментариев находится справа в UITableView. Поэтому мне нужно добавить объект с новым комментарием. Таким образом, мне нужно использовать VC с левой стороны и добавить объект с правой стороны UITableViewController. Поэтому установка такая.   -  person jo3birdtalk    schedule 26.05.2016
comment
Вы сделали все это только для того, чтобы обновить табличное представление? Извините, что звучит резко и критично, но это самые безумные вещи, которые я когда-либо видел.   -  person Gruntcakes    schedule 26.05.2016
comment
@ChromiumDioxide хм... Как еще я могу добиться того, чего хочу?   -  person jo3birdtalk    schedule 26.05.2016
comment
у тебя встроенный навигационный контроллер? вы представляете или нажимаете другой контроллер представления из containerview?   -  person Ketan Parmar    schedule 26.05.2016
comment
@Lion в родительском представлении встроен в контроллер навигации. он использует push для другого контроллера представления.   -  person jo3birdtalk    schedule 26.05.2016


Ответы (2)


вставьте navigationcontroller в представление контейнера, а затем попробуйте. Я думаю, это может решить вашу проблему .. !!

person Ketan Parmar    schedule 26.05.2016

Удалите подпредставления вашего контейнера, прежде чем вызывать performSegue.

person iOS Developer    schedule 02.10.2020
comment
Нет такой функции, как removeSubviews(). Пожалуйста, изучите свои ответы перед публикацией. - person androidStud; 19.11.2020
comment
Спасибо, исправлено! - person iOS Developer; 20.11.2020