Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift 4-启动segue的按钮按下时应用程序崩溃_Ios_Iphone_Swift_Segue_Swift4 - Fatal编程技术网

Ios Swift 4-启动segue的按钮按下时应用程序崩溃

Ios Swift 4-启动segue的按钮按下时应用程序崩溃,ios,iphone,swift,segue,swift4,Ios,Iphone,Swift,Segue,Swift4,我正在编写一个应用程序,按一下按钮,它应该会转到另一个视图控制器,但当我运行它时,它会崩溃。编辑器显示:且编辑器断点显示:但控制台中没有错误: 以及: 当我尝试使用print语句进行调试时,运行了DoTodayViewController.get(\usender:Any)方法中的语句,但没有运行AccessViewController.viewDidLoad()中的语句确保已将序列图像板中的视图控制器对象的类更改为AccessViewController,并且序列图像板ID的拼写正确。在尝试强

我正在编写一个应用程序,按一下按钮,它应该会转到另一个视图控制器,但当我运行它时,它会崩溃。编辑器显示:且编辑器断点显示:但控制台中没有错误:

以及:


当我尝试使用print语句进行调试时,运行了
DoTodayViewController.get(\usender:Any)
方法中的语句,但没有运行
AccessViewController.viewDidLoad()中的语句

确保已将序列图像板中的视图控制器对象的类更改为
AccessViewController
,并且序列图像板ID的拼写正确。在尝试强制展开<代码>情节提要?时,可能会遇到nil。实例化eviewController(标识符为:“AccessViewController”)为!AccessViewController。如果需要展开可选项以处理为零的情况,请尝试使用
if let

确保已将序列图像板中的view controller对象的类更改为
AccessViewController
,并且序列图像板ID的拼写正确。在尝试强制展开<代码>情节提要?时,可能会遇到nil。实例化eviewController(标识符为:“AccessViewController”)为!AccessViewController。如果需要展开可选项以处理为零的情况,请尝试使用
if let

您向我们展示了一个编辑器断点。为什么?错误是什么?你怎么知道应用程序崩溃了?你正在给我们展示一个编辑器断点。为什么?错误是什么?你怎么知道应用程序崩溃了?
// 
//  DoTodayViewController.swift
//  Paley Foundation: Starfish Support
//
//  Created by Sa'ar Lipshitz on 10/28/17.
//

import UIKit

class DoTodayViewController: UIViewController {
    @IBOutlet weak var navItem: UINavigationItem!
    @IBOutlet weak var getBtn: UIButton!
    @IBOutlet weak var suggestBtn: UIButton!
    var name = "Sa'ar"

    override func viewDidLoad() {
        super.viewDidLoad()
        getBtn.layer.cornerRadius = 8
        getBtn.clipsToBounds = true
        suggestBtn.layer.cornerRadius = 8
        suggestBtn.clipsToBounds = true
        navItem.prompt = "What would you like to do today, "+name+"?"
    }

    @IBAction func suggest(_ sender: Any) {
        let vc = storyboard?.instantiateViewController(withIdentifier: "SuggestViewController") as! SuggestViewController
        navigationController?.pushViewController(vc, animated: true)
    }
    //This crashes my app:
    @IBAction func get(_ sender: Any) {
        let vc = storyboard?.instantiateViewController(withIdentifier: "AccessViewController") as! AccessViewController
        navigationController?.pushViewController(vc, animated: true)
    }
}
//
//  AccessViewController.swift
//  Paley Foundation: Starfish Support
//
//  Created by Sa'ar Lipshitz on 10/29/17.
//

import UIKit
import Firebase
import Material

class AccessViewController: UIViewController {
    var adviceRef: DatabaseReference!
    var advice: [[String: Any]] = []
    var i = 0
    var card: Card!
    var loadingLbl: UILabel!
    var panGesture = UIPanGestureRecognizer()
    var cardOrigPos: CGPoint!

    override func viewDidLoad() {
        super.viewDidLoad()
        adviceRef = Database.database().reference().child("Advice")
        var advDict: NSDictionary?
        adviceRef.observeSingleEvent(of: .value, with: { (snapshot) in
            let value = snapshot.value as? NSDictionary
            advDict = value
            print(advDict as Any)
            for (_, adv) in advDict! {
                self.advice.append(adv as! [String : Any])
            }
            print(self.advice)
            self.showNextCard()
        }) { (error) in
            print(error.localizedDescription)
        }
        let swipeRec = UIPanGestureRecognizer(target: self, action: #selector(swipe(sender:)))
        card.isUserInteractionEnabled = true
        card.addGestureRecognizer(swipeRec)
    }

    @objc func swipe(sender: UIPanGestureRecognizer) {
        let translation = sender.translation(in: view)
        let velocity = sender.velocity(in: view)
        let direction = velocity
        print("Translation: \(translation)")
        if sender.state == .began {
            cardOrigPos = card.center
        } else if sender.state == .changed {
            card.center = CGPoint(x: cardOrigPos.x+translation.x, y: cardOrigPos.y+translation.y)
        } else if sender.state == .ended {
            if velocity.y == 0 && velocity.x == 0 {
                UIView.animate(withDuration: 0.3, animations: {
                    self.card.center = self.view.center
                })
            } else {
                UIView.animate(withDuration: 0.3, animations: {
                    self.card.center = CGPoint(x: self.cardOrigPos.x+direction.x*5, y: self.cardOrigPos.y+direction.y)
                })
                self.showNextCard()
            }
        }
    }

    func showNextCard() {
        if advice.count >= 0 {
            let adv = advice[i]
            setCard(adv["username"] as? String, adv["title"] as! String, adv["desc"] as! String, image: adv["image"] as? UIImage)
            i += 1
            if i >= advice.count {
                i = 0
            }
        }
    }

    func setCard(_ username: String?, _ title: String, _ desc: String, image: UIImage?) {
        let toolbar = setToolbar(username ?? "", title)
        card = Card()
        card.toolbar = toolbar
        card.toolbarEdgeInsetsPreset = .square3
        card.toolbarEdgeInsets.bottom = 0
        card.toolbarEdgeInsets.right = 8
        card.contentView = setContentView(content: desc)
        card.contentViewEdgeInsetsPreset = .wideRectangle3
        card.layer.borderWidth = 1.0
        card.layer.borderColor = UIColor.black.cgColor
        card.layer.cornerRadius = 2
        view.layout(card).horizontally(left: 20, right: 20).center()
    }

    func setToolbar(_ username: String, _ title: String) -> Toolbar {
        let toolbar = Toolbar(rightViews: [setMoreBtn()])
        toolbar.title = title
        toolbar.detail = username
        toolbar.detailLabel.textColor = Color.grey.base
        return toolbar
    }
    func setMoreBtn() -> IconButton {
        let moreBtn = IconButton(image: Icon.cm.moreVertical, tintColor: Color.grey.base)
        return moreBtn
    }
    func setContentView(content: String) -> UILabel {
        let contentView = UILabel()
        contentView.numberOfLines = 0
        contentView.text = content
        contentView.font = RobotoFont.regular(with: 14)
        return contentView
    }
}