【问题标题】:Move to another Viewcontroller via RightBarButtonItem通过 RightBarButtonItem 移动到另一个 Viewcontroller
【发布时间】:2016-03-02 12:35:42
【问题描述】:

我有以下情况:

我在 viewDidLoad: 中创建了一个 rightBarButtonItem

self.navigationItem.rightBarButtonItem = UIBarButtonItem.init(title: "New", style: .Plain, target: self, action: "newProject")

我的问题是,如何使用 segue“显示(例如推送)”以编程方式点击此按钮到另一个 Viewcontroller。

我的开头是这样的:

func newProject() {

}

但我不知道更多,因为我是 Swift 的初学者。

任何帮助将不胜感激!

更新:

所以,这是出现错误的整个区域:

class NewProject: UIViewController, UITextFieldDelegate, UITextViewDelegate, CustomPickerDelegate {

    @IBOutlet weak var txtProjectName: UITextField!
    @IBOutlet weak var tvDescription: UITextView!
    @IBOutlet weak var txtStartDate: UITextField!
    @IBOutlet weak var txtEndDate: UITextField!

    var hud: MBProgressHUD?
    var customPicker: CustomPickerView?
    var dictProject: NSDictionary!
    var projectID: String!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.navigationItem.title = "Create new Project"
        self.hud = MBProgressHUD(view: self.view)
        self.view.addSubview(self.hud!)
        self.projectID = ("\(self.dictProject!["id"]!)")
        self.populateFields()
    }
    func populateFields() {
        if nil != self.dictProject!["name"] {
            self.txtProjectName.text = self.dictProject!["name"] as? String
        }

    }

并且错误出现在这一行:

self.projectID = ("\(self.dictProject!["id"]!)")

这行在这里:

    if nil != self.dictProject!["name"] {

【问题讨论】:

  • 您是否通过故事板从右栏按钮转到 Viewcontroller ?
  • 不,我不想要这个。是否有可能以编程方式进行?
  • 您是否从情节提要创建了视图控制器?
  • 是的。但是由于导航栏由于显示(例如推送)segue而自动存在,我无法编辑导航栏并通过GUI制作按钮。这就是我以编程方式创建它的原因。
  • @Walker 实际上,导航栏应该还在。能否发送您的故事板的屏幕截图?

标签: swift viewcontroller rightbarbuttonitem


【解决方案1】:

在故事板中给你的 segue 一个标识符(即"NewProject"),然后像这样执行它:

func newProject() {
    performSegueWithIdentifier("NewProject", sender: self)
}

【讨论】:

  • 它给了我一个崩溃,错误看起来像这样:“致命错误:在展开可选值时意外发现 nil”。
  • 你能检查一下你的代码中这个错误是在哪里引起的吗?
  • 这没什么用...你看不出你的应用在哪一行代码崩溃了?
  • 不,我不能。它会打开汇编代码并向我显示带有上述错误的断点。
  • 应用崩溃后,您能否在左侧面板的调试导航器中看到任何有用的信息?在线程 1 下方,您应该能够看到您的代码有什么问题。
猜你喜欢
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2021-02-07
  • 1970-01-01
  • 2017-10-01
  • 1970-01-01
  • 2013-09-07
  • 2015-12-27
相关资源
最近更新 更多