所有这些可能都是一个微不足道的问题,但我还没有找到解决方案。我正在使用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调用时不可能删除然后切换