Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
328 kez görüntülendi
ios development kategorisinde tarafından
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
tarafından
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. :)

tarafından
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. :)
tarafından
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.
    }


}
tarafından
tesekkur ederim hocam mantık olarak anladım konuyu. bi tıktan nerelere geldik. :)
...