“Symbol non trovato” errori per UIPopoverController in un iPhone / iPad App universale
-
26-09-2019 - |
Domanda
In un binario iPhone / iPad universale della miniera, gli utenti sono in grado di regolare le preferenze in un controller della vista che viene presentato modale. Su iPhone, il pannello delle impostazioni è presentato con presentModalViewController:. Animato :, e sul iPad, io uso un UIPopoverController
Ho un mucchio di tempo isolando completamente il codice UIPopoverController lontano dal codice iPhone. Ogni volta che ho di compilazione per l'iPhone, ottengo il seguente errore:
dyld: Symbol not found: _OBJC_CLASS_$_UIPopoverController
Referenced from: /var/mobile/Applications/CBB37F87-AA6D-47E2-823A-E259E3268A32/MyApp debug.app/MyApp
Expected in: /System/Library/Frameworks/UIKit.framework/UIKit
Questa è, naturalmente, perché UIKit su iPhone non ha una classe UIPopoverController. Qualcuno ha consigli su come isolare efficacemente l'API iPad include dal codice iPhone, in modo da poter effettivamente eseguito il mio codice?
Soluzione
Ahhhh Nevermind. Scopri esempio app di Apple "TopPaid"
È un po 'hacky, ma funziona. Vorrei che ci fosse una soluzione più elegante ...
Class cls = NSClassFromString(@"UIPopoverController");
if (cls != nil)
{
UIPopoverController *aPopoverController =
[[cls alloc] initWithContentViewController:self.masterViewController];
self.popoverController = aPopoverController;
[aPopoverController release];
[popoverController presentPopoverFromBarButtonItem:barButtonItem
permittedArrowDirections:UIPopoverArrowDirectionUp
animated:YES];
}