1 vấn đề với .reloadData () khi đi giữa VC

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi cố gắng sử dụng hoạt hình chuyển tiếp tùy chỉnh: https://github.com/AladinWay/TransitionButton

Nó hoạt động như dự định, nhưng vì một số lý do, sau khi chuyển sang ứng dụng VC mới, nó dừng lại. và hiển thị lỗi "Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value"

Tôi đã bản địa hóa thành công sự cố cho dòng

DispatchQueue.main.async {
                     self.collectionView.reloadData ()
                 }

không có hình ảnh động trong quá trình chuyển đổi trực tiếp sang các vấn đề VC phát sinh. thông tin được tải và cập nhật bằng cách tải lại chế độ xem.

Có lẽ sự cố xảy ra trong quá trình chuyển đổi trực tiếp sang

 self.present (secondVC, animated: true, completion: nil)

Tôi đã cố xóa dòng self.collectionView.reloadData () sau đó lỗi không xảy ra. Nó chỉ là một màn hình đen. Nhưng đây cũng là một vấn đề.

Lúc đầu, tôi nghĩ rằng vấn đề là do nhóm, nhưng tôi nghĩ rằng vấn đề là có sự chuyển đổi trực tiếp sang VC và CollectionView không tải và khi tôi cố gắng nâng cấp, tôi nhận được một lỗi

import TransitionButton
import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var searchTextField: UITextField!




    override func viewDidLoad() {
        super.viewDidLoad()


    }

    @IBAction func buttonAction(_ button: TransitionButton) {
        button.startAnimation() // 2: Then start the animation when the user tap the button
        let qualityOfServiceClass = DispatchQoS.QoSClass.background
        let backgroundQueue = DispatchQueue.global(qos: qualityOfServiceClass)
        backgroundQueue.async(execute: {

            sleep(3) // 3: Do your networking task or background work here.

            DispatchQueue.main.async(execute: { () -> Void in
                // 4: Stop the animation, here you have three options for the `animationStyle` property:
                // .expand: useful when the task has been compeletd successfully and you want to expand the button and transit to another view controller in the completion callback
                // .shake: when you want to reflect to the user that the task did not complete successfly
                // .normal
                button.stopAnimation(animationStyle: .expand, completion: {
                    let secondVC = CarInfo()
                    self.present(secondVC, animated: true, completion: nil)
                })
            })
        })
    }
}

import TransitionButton
import UIKit

class CarInfo: CustomTransitionViewController, UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {

    @IBOutlet weak var testSegue: UILabel!
    @IBOutlet weak var collectionView: UICollectionView!


    override func viewDidLoad() {
        super.viewDidLoad()




        // create post request


                DispatchQueue.main.async {
                    self.collectionView.reloadData()
                }
            } catch {
                print(error)
            }

        }
        task.resume()
}

Tôi dự định sử dụng hoạt hình này và trong nền để tải dữ liệu từ API sau khi hiển thị trang hoàn thành. Nhưng bây giờ mọi thứ chỉ tan vỡ

    
1
  1. Có thể trùng lặp với stackoverflow.com/questions/25474115/iêu
    2019-05-08 16: 48: 05Z
1 Câu trả lời                              1                         

Bạn nên tải vc này từ bảng phân cảnh để thay thế và đặt số nhận dạng bảng phân cảnh như CardID

let secondVC = CarInfo()

với

let secondVC  = self.storyboard!.instantiateViewController(withIdentifier: "CardID") as! CarInfo
    
1
2019-05-08 16: 37: 25Z
  1. Nó hoạt động, nhưng nó không hoàn toàn theo cách tôi dự định. Làm cách nào để lưu liên kết vào NavContoder để có thể quay lại?
    2019-05-08 21: 04: 39Z
  2. giải quyết cần thay thế self.present(secondVC, animated: true, completion: nil) từ self.performSegue(withIdentifier: "navSegue", sender: self) navSegue là định danh cho segue mà tôi đã kết nối hai tôi cần VC
    2019-05-08 21: 58: 44Z
  3. vấn đề chính của bạn là vấn đề đang tải vc, sử dụng segue /Present là lựa chọn của bạn
    2019-05-08 22: 05: 48Z
nguồn đặt đây