“Symbol non trovato” errori per UIPopoverController in un iPhone / iPad App universale

StackOverflow https://stackoverflow.com/questions/3026871

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?

È stato utile?

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];
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top