【问题标题】:How do I create a cancel button?如何创建取消按钮?
【发布时间】:2015-10-15 08:53:00
【问题描述】:

我无法让我的取消按钮工作。我将此操作连接到我的取消按钮,我打算像这样关闭视图控制器:

@IBAction func cancel(sender: UIBarButtonItem) {
     dismissViewControllerAnimated(true, completion: nil)
}

我想知道我缺少什么明显的部分。 (这是表格视图的条形按钮项)。

【问题讨论】:

  • 您是否在表格视图或导航栏上添加了条形按钮项?
  • 您的观点是否使用navigationController?您可以尝试navigationController!.popViewControllerAnimated(true),但如果视图以模态方式呈现,这将不起作用。
  • 以上代码将尝试关闭以模态方式呈现的子视图控制器。我添加了一个答案来解释更多

标签: ios swift segue swift2 uibarbuttonitem


【解决方案1】:
var b = UIBarButtonItem(title: "Cancel", style: .Plain, target: self, action: "Cancel clicked")

如果您希望该方法将发送者作为参数,您可以在末尾添加一个冒号:

var b = UIBarButtonItem(title: "Cancel", style: .Plain, target: self, action: "CancelClicked:")

func CancelClicked(sender: UIBarButtonItem) {
}

【讨论】:

  • 你在哪里分配这个 var b ,写你的代码
  • 我可以将按钮指定为插座吗?
【解决方案2】:

使用 IB 将 NavigationBar(和 Navigation Item)添加到 Storyboard 后,对 navigationItem var 的引用将自动映射到您的 ViewController 文件。添加以下代码以将取消按钮附加到 navigationItem 以关闭模态视图控制器:

@IBOutlet weak var navigationBar: UINavigationBar!

override func viewDidLoad() {
    super.viewDidLoad()
    navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Cancel", style: .plain, target: self, action: #selector(cancelClicked(sender:)))
}

func cancelClicked(sender: UIBarButtonItem) {
    print("Cancel clicked!")
    self.dismiss(animated: true, completion: nil)
}

【讨论】:

    【解决方案3】:

    试试这个:

    @IBAction func close(sender: AnyObject) {
        self.dismissViewControllerAnimated(true, completion: nil)
    }
    

    【讨论】:

      【解决方案4】:

      您的代码只需稍加修复即可正常工作。在呈现控制器上调用 Dismiss。 self.dismissViewController 将关闭当前 vc 呈现的子视图控制器。但如果你想解雇现有的 vc,你应该在父级上调用解雇

      @IBAction func cancel(sender: UIBarButtonItem) {
            presentingViewController.dismissViewControllerAnimated(true, completion: nil)
      }
      

      【讨论】:

      • VC 是否以模态方式呈现?
      猜你喜欢
      • 2016-02-02
      • 2013-08-26
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多