根据segue

时间:2017-10-24 09:12:10

标签: ios swift uitableview uibarbuttonitem

我正在浏览一个Apple教程,其中创建了一个简单的任务跟踪应用程序。有一个包含任务列表的动态表视图和一个静态表视图,用于添加新任务(在这种情况下,它在用户点击navigationItem中的“+”按钮后以模态方式显示)和编辑现有任务(在这种情况下)用户在动态表视图中选择其中一个单元后,通过导航控制器推送它。

教程说静态表视图应该在IB中设置“取消”leftBarButtonItem。对我来说,在创建新任务时,“取消”按钮是可以的,但是当正在查看或编辑现有任务时,带箭头的标准导航“后退”按钮会更合适。教程完全忽略了这个UI问题,我似乎找不到在两种按钮类型之间切换的方法,具体取决于正在执行的segue。唯一想到的是创建单独的表视图,但为了单个按钮,这看起来浪费时间和资源。也许有一种更简单,更明显的方式?

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

嗯,有时候只是在问了一个问题之后才找到明显的答案。这行代码:

navigationItem.leftBarButtonItem = navigationItem.backBarButtonItem

,在动态表视图的prepareForSegue()中添加,或者在静态表视图的viewDidLoad()中添加,解决了问题,并将IB中设置的“取消”按钮替换为系统标准导航后退按钮。

答案 1 :(得分:0)

 let backButton = UIButton(type: UIButtonType.custom)
    backButton.addTarget(self, action: #selector(self.bacButAction), for: UIControlEvents.touchUpInside)
    backButton.setImage(UIImage(named: "Your Image"), for: .normal)
    backButton.sizeToFit()
    let leftBarButtonItem = UIBarButtonItem(customView: backButton)
    leftBarButtonItem.title = "Your Title"

    self.navigationItem.leftBarButtonItem = leftBarButtonItem



func bacButAction()
{
 //do action here
}