2012-04-24 6 views
11

Ho aggiunto la vista UISplitViewController nella mia vista mainViewControllers, il codice è di seguito.presentModalViewController in UISplitViewControllers detailView non presenta la visualizzazione a schermo intero

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]; 

ora quello che voglio è quello di presentare un ViewController dal detailview del UISplitViewController io sto cercando di fare come qui sotto all'interno delle DetailViewControllers Cliccami! pulsanti fare clic.

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];   
    } 
} 

ma questo si traduce in una presentazione imbarazzante

enter image description here

chiunque può suggerire qual è il problema qui, grazie in anticipo ..

+0

ben spiegato !! –

+0

@Vishal nopes .. Penso che sia ancora necessario migliorare, ma sì, per la prima volta è k;) –

+0

@Shashank ci troviamo di fronte allo stesso problema. l'hai risolto? – Hitarth

risposta

2

Nei tuoi screenshot Non riesco a capire dove si trova il controller della vista split lato sinistro e lato destro (vista dettagli). Cambia i colori di sfondo delle viste per distinguere le posizioni. Sembra che tu abbia problemi con loro.

Ad ogni modo, è possibile provare a presentare il controller di visualizzazione modale da splitView anziché dal dettaglio.

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

Ciao Martin, grazie per la risposta, ma questo non ha funzionato. presentare il controller della vista utilizzando splitviewcontroller non mostra nulla. – Shashank

2

Credo che il trucco qui sta cambiando il modalPresentationStyle (e facoltativamente modalTransitionStyle) del controller della vista che si desidera visualizzare modale:

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

Quello che ho trovato è che si stanno dando dimensioni SplitView come cetralArea.frame.size.width .

Invece di dare semplicemente la dimensione direttamente che si desidera dare a Splitview.

Spero che funzioni per voi.

1

Ho avuto lo stesso problema (in iOS 5.1). Impostare modalPresentationStyle su UIModalPresentationPageSheet e dovrebbe funzionare come previsto.

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    rViewController.modalPresentationStyle = UIModalPresentationPageSheet; 
    rViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
} 
Problemi correlati