2016-03-22 27 views
0

Hızlı koduma 3D Touch Peek ve Pop uygulamasını deniyorum. Kullanıcı peek view (derinlik) görünümünde daha fazla bastığında, önizleme eylemleri dizisi görünecektir (Paylaş, Güncelle, Sil).3D Peek ve POP hızlı bir şekilde

İhtiyacım olan şey kullanıcı seçtiğinde Güncelleme eylemi UpdateView denetleyicisine geçecektir, ancak kilitlenme devam ediyor !! İşte

kodum: Ben ekrana güncelleyin geçmek için de bu kodu çalıştı

HomePeakViewController.swift

let item3 = UIPreviewAction(title: "Update", style: .Default) { (action:UIPreviewAction, vc:UIViewController) -> Void in 
     print("Update") 

     let nb:BookAppointmentViewController = BookAppointmentViewController(nibName: "BookAppointmentViewController", bundle: nil) 

     let root = UIApplication.sharedApplication().keyWindow?.rootViewController 
     root?.presentViewController(nb, animated: true, completion: nil) 

POP yöntemi HomeViewController.swift

func previewingContext(previewingContext: UIViewControllerPreviewing, commitViewController viewControllerToCommit: UIViewController) { 

     let Homepeak = HomePeakViewController() 
     showViewController(Homepeak, sender: self) 

    } 

yılında, ancak bana verir (ölümcül hata: isteğe bağlı bir değer çıkarılırken beklenmedik şekilde sıfır bulunur). Çabalarınız çok takdir edilmektedir.

cevap

0

Belki heyetler ile uğraşmak gerekir: Örneğin

:

extension MainViewController: UIViewControllerPreviewingDelegate { 

    func previewingContext(previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { 
     if #available(iOS 9.0, *) { 
      previewingContext.sourceRect = myButton!.bounds //optional 
     } 

     let homePeakViewController = UIStoryboard.homePeakViewController() 
     homePeakViewController.delegate = self 

     return homePeakViewController 
    } 


    func previewingContext(previewingContext: UIViewControllerPreviewing, commitViewController viewControllerToCommit: UIViewController) { 
     let balanceViewController = viewControllerToCommit as! HomePeakViewController 
     navigationController?.pushViewController(balanceViewController, animated: true) 
    } 

} 

extension MainViewController: HomePeakViewControllerDelegate { 

    func homePeakViewControllerUpadateActionTapped() { 
     let bookAppointmentViewController = let nb:BookAppointmentViewController = BookAppointmentViewController(nibName: "BookAppointmentViewController", bundle: nil) 
     navigationController?.pushViewController(bookAppointmentViewController, animated: true) //present as you want 
    } 

} 

protocol HomePeakViewControllerDelegate { 
    func homePeakViewControllerUpadateActionTapped() 
} 

class HomePeakViewController { 

    var delegate: HomePeakViewControllerDelegate? 

    @available(iOS 9.0, *) 
    override func previewActionItems() -> [UIPreviewActionItem] { 
    let item3 = UIPreviewAction(title: "Update", style: .Default) { (action:UIPreviewAction, vc:UIViewController) -> Void in 
     delegate?.homePeakViewControllerUpadateActionTapped() 
    } 

    return [item3] 
    } 

} 
İlgili konular