2015-10-13 27 views
68

Bu konunun oldukça popüler olduğunu biliyorum, ancak bir programlama dilinde biraz inattif problemim var, aslında hala kodu nereye koyacağımı anlamıyorum. Normal biraz farklı bir modal Swift yapmaya çalışıyorumSaydam arka planlı Swift Modal View Controller

enter image description here

: Eh, bütün dava söyleyeceğim bir düğmeye tıklayarak, ViewController (modal tip aşağıdaki) görüntülenir Ekranda, ancak şeffaf arka plan ile. Sadece mavi etiketli görünüm gösterilecektir. Bu ViewController sunulduğunda, şeffaf arka plan ile, ancak geçişi tamamlar tamamlamaz, siyah arka plan ile kalacaktır. Opak seçeneğini zaten devre dışı bıraktı ve bazı seçenekleri test etti, ancak bu sorun giderme işlemine hiçbir şey kalmadı.

Bazıları bana yardımcı olabilir?

Video, durumdaki simülatördeki bir testtir (https://www.youtube.com/watch?v=wT8Uwmq9yqY). do

self.presentingViewController.providesPresentationContextTransitionStyle = YES; 
self.presentingViewController.definesPresentationContext = YES; 
modal.modalPresentationStyle = UIModalPresentationOverCurrentContext; 

:

Ben Swift ile başlıyorum ve hala oldukça Xcode program nasıl birlikte kayboldum, ben bu çözmek için aşağıdaki kodu olan bir soruya bir cevap okumak Bu kodu koydum mu?

+0

Şuna bakın: http://stackoverflow.com/questions/27669699/transparent-background-for-modally-presented-viewcontroller – joern

+0

Düğmeyi ViewController (modal) arasında tutmalıyım? , çünkü aşağıdaki özellikler hiçbir şey sunmaz; –

+0

Bkz. Http://stackoverflow.com/questions/26598099/present-uiviewcontroller-as-a-modal-with-transparent-background?rq=1 –

cevap

172

Böyle yapabilirsiniz:

ana görünüm denetleyicisinde:

func showModal() { 
    let modalViewController = ModalViewController() 
    modalViewController.modalPresentationStyle = .overCurrentContext 
    presentViewController(modalViewController, animated: true, completion: nil) 
} 

sizin modal görünüm denetleyicisinde:

class ModalViewController: UIViewController { 
    override func viewDidLoad() { 
     view.backgroundColor = UIColor.clearColor() 
     view.opaque = false 
    } 
} 

Eğer çalışıyorsanız bir storyboard ile:

Sadece set aşağıdaki değerlerden sizin modal görünümü kontrolöre ve bu görünüm denetleyicisinde Present Modally için Kind set ile Storyboard Segue ekleyin:

  • Arkaplan = Temizle Renk
  • Çizim = işaretini kaldırın Opak onay kutusunu
  • Sunum = Crashalot onun yorumunda işaret

olarak Akım Bağlamında Aşırı: emin olun segue, yalnızca Presentation ve Transition için Default kullanır. Presentation için Current Context'un kullanılması, kalıcı olarak kalanın yerine modal dönüşü siyah yapar.

+0

Hikaye panosu ile mi çalışıyorsunuz? Lütfen düzenlenmiş cevabımı inceleyin.Sadece denedim ve – joern

+0

çalışır. Düzenledikten sonra, talimatlarını izleyin ve düzgün bir şekilde çalıştı. Çok teşekkür ederim! –

+0

Sorun değil, yardım ettiğine sevindim :-) – joern

İlgili konular