Изменить вид с помощью NavigationViewController

Все это, вероятно, тривиальный вопрос, но я не нашел его решения. Я делаю приложение для Iphone, используя Swift.

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

navigationController?.popViewControllerAnimated(true)

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

Код выглядит так:

    @IBAction func DeletePressed(sender: UIButton) {
    let deleteIndices = getIndexToDelete()
    navigationController?.popViewControllerAnimated(true)

    print("After navigationController")
    for index in deleteIndices{
        results?.ListResults[yearShownIndex].months[monthShownIndex].day[dayShownIndex].results.removeAtIndex(index)
    }
    if (results?.ListResults[yearShownIndex].months[monthShownIndex].day[dayShownIndex].results.count == 0){
        results?.ListResults[yearShownIndex].months[monthShownIndex].day.removeAtIndex(dayShownIndex)
    }
    if (results?.ListResults[yearShownIndex].months[monthShownIndex].day.count == 0){
        results?.ListResults[yearShownIndex].months.removeAtIndex(monthShownIndex)
    }
    if (results?.ListResults[yearShownIndex].months.count == 0){
        results?.ListResults.removeAtIndex(monthShownIndex)
    }
    loadView()
}

"После навигатора" всегда отображается.

В Android вы могли бы начать новую деятельность, создавая намерения получить желаемое поведение, но как это работает на Iphone?

Моя проблема в том, что я хочу иметь возможность вернуться, когда navigationController.popViewControllerAnimated называется. Это просто игрушечный пример, чтобы понять, как это работает, чтобы я мог использовать его в предложениях if позже.

2 ответа

Решение

Вы могли бы просто добавить return оператор после того, как вы выталкиваете viewcontroller:

@IBAction func DeletePressed(sender: UIButton) {
    let deleteIndices = getIndexToDelete()
    navigationController?.popViewControllerAnimated(true)
    return;
    [...]

Если вы не хотите выполнять код после "print("After navigationController")", то удалите этот код

или это невозможно удалить, а затем переключить его при вызове DeletePressed

Другие вопросы по тегам