2013-03-14 17 views
7

Genel uygulamamda, bir kişinin sistemdeki mevcut bir not listesine bakabileceği bir bölümüm var (basit bir web hizmeti aracılığıyla alındı) ve sonra da yeni bir not oluşturuyorsa isterler. Yani iphone için oldukça basit bir düzen, yeni öğe eklemek için modalview sunan NavigationBar bir "Ekle" düğmesi ile listeyi görüntülemek için bir TableViewController. IPad'de olsa da, aynı düzende çok fazla boş alan var, bu yüzden popOver'da listeyi göstermek için popOver yöntemini kullanmaya karar verdim ve sonra da oradan eklemelerine izin verdim. Benim sorunum, kullanıcı PopOver görünümünde Ekle düğmesini tıkladığında, modal görünüm, popover görünümünde görünmek yerine tam ekrana gelir. İşte kod var bugüne kadar var:İç Görünüm Görünümü Denetleyicisi içinden Gelen Görünüm Görünümü

-(void) AddButtonPressed:(id)sender { 

NewNoteVC *newNote = [[[NewNoteVC alloc] initWithNibName:@"NewNoteVC" bundle:nil] autorelease]; 
newNote.defaultClientID = defaultClientID; 
UINavigationController *navCon = [[[UINavigationController alloc] initWithRootViewController:newNote] autorelease]; 
if ([isPopOver isEqualToString:@"YES"]) { 
    [navCon setModalInPopover:YES]; 
    [self.navigationController setModalInPopover:YES]; 
    [self.navigationController presentModalViewController:navCon animated:YES]; 
} 
else { 
    [self.navigationController presentModalViewController:navCon animated:YES]; 
} 

}

"isPopOver" dizesi sadece bu TableView denilen önceki ekrana (Ben daha iyi bir mantıksal değere bu geçiş yapabilirsiniz biliyorum gönderilen bir yer tutucudur performans bunu bir araya getirmek için çok çabuk bir araya getirdim. Biliyorum, bir yerlere bulaştım, bunun doğru bir şekilde çalışmasını sağlamak için hangi ayarlara ihtiyacım olduğunu bilmiyorum.

+0

olası yinelenen [UIPopoverController sunulan modally iOS 5'de çalışmıyor] (http://stackoverflow.com/questions/7806979/uipopovercontroller-presented-modally-doesnt-work-in-ios-5) – Till

cevap

22

ayarlayın.

navCon.modalPresentationStyle = UIModalPresentationCurrentContext; 

Bu, popover'ın kök denetleyicisi gibi popover'ı dolduran modal view denetleyicisine neden olur.

+2

Bu ihtiyacım olan ayar, teşekkürler. –

2

presentViewController:animated:completion: yerine presentModalViewController:animated: ait kullanmayı deneyin ve sen görünümü denetleyicisi en modalPresentationStyle "Mevcut bağlam" olarak tanımlamak gerekir self.navigationController.definesPresentationContext = YES