Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.

Sağdan sola segue (push segue'nin tersi)

0 oy
51 kez görüntülendi
13, Ocak, 2016 ios development kategorisinde csayin tarafından soruldu
Merhabalar, öncelikle konu başlığında saçmaladığım için kusura bakmayın soruyu bir cümlede sormak ilk defa bu kadar zor oldu.

sorum su basit bi uygulama yapıyorum aslında bir ekranda bir ekrana buton üzerinden push segue ile geçiş yaptım. Geçişin gerçekleştiği sayfadan ilk sayfaya da bir geri butonu koydum(tasarımda navigation bar kullanma imkanim yok). bu butonun standart push'un tersine soldaan sağa degilde sağdan sola slide ile geçmesini istiyorum uzun uzun kodlar buldum ama basit bir yöntemi var mı diye sormak istedim. bilgisi olan arkadaşlar yardımcı olursa sevinirim.

1 cevap

0 oy
14, Ocak, 2016 yasin tarafından cevaplandı
15, Ocak, 2016 csayin tarafından seçilmiş
 
En İyi Cevap

Storyboard kullanmaya bir türlü alışamadım. :)
Yapmak istediğiniz şeyin mevcut storyboard olanaklarıyla tam olarak nasıl gerçekleştirilebileceği konusunda açıkçası tam emin olamıyorum.
ama programatically bir çözüm isterseniz. seve seve veririm. :)

14, Ocak, 2016 csayin tarafından yorumlandı
storyboar'ı iyice kurcaladım ama istediğim sonucu bulamadım navigation controller kullanıldığı taktirde back button kullanabiliyoruz ancak dedigim gibi tasarım nediniyle navigation tab bar kullanmam mümkün değil (aslında segue ayarlarında yön ayarı olmalı ama koymamış tim cook ya da ben bulamadım :) ). kod ile çözüme ulaşmamda sıkıntı yok bu uygulamada bi çok yerde kullanacağım bu yapıyı. programlama yoluylada çözüme gitmemin bi sakıncası yok. :)
14, Ocak, 2016 yasin tarafından yorumlandı
mesala view'lar arası geçiş için şöyle birşeyler yapılabilir.
verdiğim kodu boş bir proje açıp, viewController'a kopyalayın.



import UIKit

class ViewController: UIViewController {

    var anotherView:UIView! = nil
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        
        var showButton:UIButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
        showButton.frame = CGRectMake((self.view.frame.size.width - (self.view.frame.size.width * 0.3)) / 2, (self.view.frame.size.height - (self.view.frame.size.height * 0.08)) / 2, self.view.frame.size.width * 0.3, self.view.frame.size.height * 0.08)
        showButton.backgroundColor = UIColor.redColor()
        showButton.addTarget(self, action: "showAnotherView", forControlEvents: UIControlEvents.TouchUpInside)
        self.view.addSubview(showButton)
    }
    
    
    func showAnotherView() {
        if self.anotherView == nil {
            self.anotherView = UIView(frame: CGRectMake(self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height))
            self.anotherView.backgroundColor = UIColor.redColor()
            self.view.addSubview(self.anotherView)
            
            var dismissButton:UIButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
            dismissButton.frame = CGRectMake((self.view.frame.size.width - (self.view.frame.size.width * 0.3)) / 2, (self.view.frame.size.height - (self.view.frame.size.height * 0.08)) / 2, self.view.frame.size.width * 0.3, self.view.frame.size.height * 0.08)
            dismissButton.backgroundColor = UIColor.whiteColor()
            dismissButton.addTarget(self, action: "dismissAnotherView", forControlEvents: UIControlEvents.TouchUpInside)
            self.anotherView.addSubview(dismissButton)
            
            
            
            UIView.animateWithDuration(0.4, delay: 0.0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in
                self.anotherView.frame = self.view.frame
            }, completion: { (Bool) -> Void in
                
            })
        }
    }
    
    func dismissAnotherView() {
        if self.anotherView != nil {
            UIView.animateWithDuration(0.4, delay: 0.0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in
                self.anotherView.frame = CGRectMake(self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height)
                }, completion: { (Bool) -> Void in
                    self.anotherView.removeFromSuperview()
                    self.anotherView = nil
            })
        }
    }
    

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}
15, Ocak, 2016 csayin tarafından yorumlandı
tesekkur ederim hocam mantık olarak anladım konuyu. bi tıktan nerelere geldik. :)
...