Si dovrebbe implementare UISplitViewControllerDelegate. modo più semplice potrebbe essere quella di avere la propria classe MySplitViewController e porsi come delegato in viewDidLoad:
self.delegate = self;
In primo luogo, si consiglia showDetailViewController a guardare qualcosa di simile:
- (BOOL) splitViewController:(UISplitViewController*)splitViewController showDetailViewController:(UIViewController*)vc sender:(id)sender
{
if (splitViewController.collapsed)
{
[(UINavigationController*)splitViewController.viewControllers[0]) pushViewController:vc animated:YES];
}
else
{
self.viewControllers = @[ self.viewControllers.firstObject, vc ];
}
return YES;
}
che dovrebbe prendersi cura di una corretta visualizzazione dei dettagli in entrambi gli orientamenti.
Successivamente, si dovrebbe attuare seguente metodo delegato simile a questo:
- (UIViewController*) splitViewController:(UISplitViewController*)splitViewController
separateSecondaryViewControllerFromPrimaryViewController:(UIViewController*)primaryViewController
{
UINavigationController* nc = primaryViewController;
UIViewController* detailVC = nc.viewControllers.lastObject;
return detailVC;
}
Questo metodo è la tua occasione di prendere quello che vuoi dal controllore primario e ritorno che, come regolatore di vista di dettaglio. Il codice di esempio sopra è piuttosto semplice, potrebbe essere necessario attraversare la visualizzazione di navigazioneControllori e selezionare tutto a partire dal controller di visualizzazione specifico (presumendo che tu abbia ricevuto spinte dalla visualizzazione dettagli).
In ogni modo, sarebbe davvero payoff di prendere tempo e leggere: UISplitViewController class reference e soprattutto UISplitViewControllerDelegate Protocol Reference Questo sarà molto più chiaro. Se si desidera una scorciatoia, dare un'occhiata al progetto del modello di controller della vista divisa Xcode. Quello dovrebbe anche contenere suggerimento o soluzione esatta per il tuo problema.