2012-04-24 10 views
11

Dodałem widok UISplitViewController w moim widoku głównym ViewControllers, kod jest poniżej.presentModalViewController w widoku UISplitViewControllers detailView nie wyświetla widok na pełnym ekranie

documentsRootViewController = [[DocumentsRootViewController alloc] initWithStyle:UITableViewStylePlain]; 
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:documentsRootViewController]; 
    documentsRootViewController.title = @"Document List"; 

    documentDetailView = [[DocumentsDetailView alloc] initWithNibName:@"DocumentsDetailView" bundle:nil]; 
    documentsRootViewController.detailViewController = documentDetailView; 

    docSplitViewController = [[UISplitViewController alloc] init]; 
    docSplitViewController.viewControllers = [NSArray arrayWithObjects:navigationController, documentDetailView, nil]; 
    docSplitViewController.delegate = documentDetailView; 

    CGRect splitViewFrame = CGRectMake(0, 0, cetralArea.frame.size.width, cetralArea.frame.size.height);   
    docSplitViewController.view.frame = splitViewFrame; 
    [cetralArea addSubview:docSplitViewController.view]; 

teraz to, co chcę jest przedstawienie ViewController z DetailView z UISplitViewController staram się zrobić to jak poniżej wewnątrz DetailViewControllers Kliknij mnie! przyciski kliknij.

enter image description here

- (IBAction) buttonClicked:(id)sender 
{ 
    NSString *phrase = nil; // Document password (for unlocking most encrypted PDF files)  
    NSArray *pdfs = [[NSBundle mainBundle] pathsForResourcesOfType:@"pdf" inDirectory:nil];  
    NSString *filePath = [pdfs lastObject]; assert(filePath != nil); // Path to last PDF file 

    ReaderDocument *readerDocument = [ReaderDocument withDocumentFilePath:filePath password:phrase];  
    if (readerDocument != nil) // Must have a valid ReaderDocument object in order to proceed with things 
    { 
     ReaderViewController *rViewController = [[ReaderViewController alloc] initWithReaderDocument:readerDocument];   
     rViewController.delegate = self; // Set the ReaderViewController delegate to self    

     [self presentModalViewController:rViewController animated:NO];   
    } 
} 

ale to skutkuje nietypowej prezentacji

enter image description here

ktoś może sugerować, co jest problemem, z góry dzięki ..

+0

dobrze wyjaśnione !! –

+0

@Vishal nopes ..Myślę, że jeszcze trzeba poprawić, ale tak po raz pierwszy jego k;) –

+0

@Shashank mamy również do czynienia z tym samym problemem. czy to rozwiązałeś? – Hitarth

Odpowiedz

2

w twoich screenów Nie mogę powiedzieć, gdzie znajduje się kontroler widoku podzielonego z lewej i prawej strony (widok szczegółów). Zmień kolory tła widoków, aby rozróżnić pozycje. Wygląda na to, że masz z nimi problemy.

W każdym razie możesz spróbować przedstawić kontroler widoku modalnego z widoku SplitView zamiast szczegółów.

[splitViewController presentModalViewController:rViewController animated:NO]; 
+0

Cześć Martin, dzięki za odpowiedź, ale to nie zadziałało. przedstawienie kontrolera widoku przy użyciu splitviewcontroller nic nie pokazuje. – Shashank

2

wierzę trick tutaj zmienia modalPresentationStyle (i ewentualnie modalTransitionStyle) kontrolera widoku, który chcesz wyświetlić modally:

ReaderViewController *rViewController = [[ReaderViewController alloc] initWithReaderDocument:readerDocument];   
    rViewController.delegate = self; // Set the ReaderViewController delegate to self    

    rViewController.modalPresentationStyle = UIModalPresentationFullScreen; 
    rViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;  
    [self presentViewController:rViewController animated:YES completion:nil]; 
0

co znalazłem to dajesz rozmiar splitview jak cetralArea.frame.size.width .

Zamiast tego po prostu podaj bezpośrednio rozmiar, który chcesz nadać Splitview.

Mam nadzieję, że będzie działać dla Ciebie.

1

Miałem ten sam problem (w iOS 5.1). Ustaw modalPresentationStyle na UIModalPresentationPageSheet i powinno działać zgodnie z oczekiwaniami.

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    rViewController.modalPresentationStyle = UIModalPresentationPageSheet; 
    rViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
} 
Powiązane problemy