2013-03-26 26 views
5

dönen sonra kaybolan Garip bir sorun UISplitViewController var. Ana görünüm denetleyicimde, tıklatıldığında (basit bir hikaye tahtasının kullanılmasıyla) bir modal görünümü açan bir düğmem var.Modal UISplitViewController

Ama iPad döndüğünde modal görünümü kaybolur, ancak sadece dikey konumdan yatay konuma dönen. Ana görünüm denetleyicim, yerel Posta uygulamasında olduğu gibi, dikey olarak gizlenmiştir. Ben (ana her zaman görünür olduğunda) manzara ve benim modal açarsanız

cihazı dönen düzgün çalışır ve ekranda benim kalıcı kalır. Ben splitViewController üzerinde performSegueWithIdentifier: çağırırsanız

el eserler her iki yönde dönen, programlı segue tetikleme çalıştı. Ama usta görünümü kumandam sistemle modeller gösteren diğer düğmeler var çünkü bu daha basit bir şekilde tamir edilebilir olduğunu merak ediyordum ve ben her biri için bir IB eylem yapmak ve film şeridi segues avantajlarını kaybetmek istemiyoruz.

cevap

1

maalesef başka şekli usta değil, sizin ipad Dikey modda iken, efendin bir popover var böyledir. Ne presentingViewController olarak bu popover kullanarak kalıcı sunuyoruz, böylece dikey yatay hareket ederken popover nil yapacak yöntem splitViewController:willShowViewController Gördüğünüz gibi anlamına gelir:

- (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem 
{ 
    // Called when the view is shown again in the split view, invalidating the button and popover controller. 
    [self.navigationItem setLeftBarButtonItem:nil animated:YES]; 
    self.masterPopoverController = nil; 
} 

yüzden anlaması kabul edilebilir aşağıdadır modal onunla gidiyor. Yani, bununla birlikte, eyleminizi ne zaman yaptığınızı anladığınızda splitViewController'ınızda performSegueWithIdentifier: numaralı telefonu arayın, modal artık popover'ınıza bağlı değildir.

Bu nedenle, manzaradan portreye geçtiğinizde neden oluşmadığını sorabilirsiniz .. ve neden splitViewController:willHideViewController ise, viewController'ı kaldırmaz, dolayısıyla modal her zaman bağlıdır.

Bu yüzden ne yazık çözüm yok ve siz .. koduna göre ben yardımcı olur umarım

,

Roberto

eylemleri gerçekleştirmek zorunda kalacak