使用NavigationViewController更改视图



所有这些可能都是一个微不足道的问题,但我还没有找到解决方案。我正在使用Swift为Iphone制作一个应用程序。

我有一个带有一些字符串的表视图,如果我按下按钮,我想直接导航回上一个视图。然而,我打后的代码

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子句中使用它了。

您只需在弹出视图控制器后添加一个return语句:

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

如果您不想在"print("after navigationController")"之后执行代码,则删除该代码

或者当DeletePressed调用时不可能删除然后切换

相关内容

  • 没有找到相关文章

最新更新