简体   繁体   中英

Swift dismissing view with clunky animation

I simply have a ViewController that I would like to dismiss . And this is my dismissAction :

@objc private func dismissView(){
    
    self.dismiss(animated: true, completion: nil)
    
    UserDefaultsService.shared.updateDataSourceArrayWithWishlist(wishlist: self.wishList)
    let dataSourceArray = UserDefaultsService.shared.getDataSourceArray()
    //  update datasource array in MainVC
    self.dismissWishlistDelegate?.dismissWishlistVC(dataArray: dataSourceArray, dropDownArray: self.dropOptions, shouldDeleteWithAnimation: false, wishlistToDelete: self.wishList)

}

Proble:

The dismiss animation is very clunky and not fluent at all. I found out that if I remove everything in the function but only call self.dismiss it is working perfectly fine. What is the issue here? Any idea on how I can fix this?

You can try to light-weight load in main thread by

DispatchQueue.global().async {
   UserDefaultsService.shared.updateDataSourceArrayWithWishlist(wishlist: self.wishList)
}

And instead of let dataSourceArray = UserDefaultsService.shared.getDataSourceArray() use self.wishList directly in the last line

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM