Domanda

Qualcuno ha avuto fortuna con un UIPicker nel 3.2 SDK? Sono nel bel mezzo di porting di un'applicazione iPhone oltre a un iPad e questa è l'unica cosa che non riesco a mettersi al lavoro. Ho provato ...

-Creare un foglio di azione, aggiungere il selettore come una visualizzazione secondaria e la visualizzazione.

-Creazione tale foglio sopra azione, rendendo la vista di un ViewController generico, aggiungendo che VC ad un UIPopover

-Fare solo il selettore della vista di un ViewController generica, aggiungendo che VC ad un UIPopover

Con il foglio di azione che non tenta nemmeno di disegnarlo. Dal punto di vista popover tenta di disegnare, ma non viene eseguito il rendering in modo corretto.

Volevo solo controllare per vedere se qualcuno ha compiuto questo e se sì, come.

Grazie a tutti!

È stato utile?

Soluzione

Io sono l'autore del tutorial di cui sopra. Per un selettore a lavoro in un popover e aggiungere il valore selezionato per la casella di testo nella vista principale è necessario utilizzare protocolli. Ho creato un progetto di esempio per mostrare questo. Io sarà la creazione di un tutorial su questo presto.

Esempio Progetto

Altri suggerimenti

Ho appena lottato con questo per circa 24 ore e preso a lavorare seguendo questo tutorial e dovunque egli cita il suo UITableView, basta pensare al vostro UIPickerView e sostituire le informazioni del caso.

Matthew Casey - Tutorial: Introduzione alla Pop il controllo su iPad

In breve, sul iPad, l'unico modo è possibile mostrare un selettore è all'interno di un controllo popover. La condivisione dei dati tra il controllore della popover contenuto (controller di vista della vista selettore) e il controller di vista della applicazione principale è il bit non riuscivo a capire. (Vale a dire ottenere il metodo del selettore "didSelectRow" per influenzare un oggetto nel controller della vista principale, dire un'UITextField o UIButton.) Questa operazione è gestita attraverso la creazione di un protocollo personalizzato per inoltrare il metodo "didSelectRow" al controller della vista principale.

Sono in alcun modo un esperto in queste cose, così sono andato di pari passo con quella tutorial e ha fatto il lavoro alla fine. Prima ho scoperto che un'esercitazione ero perso. (Sono anche porting su un'applicazione per iPhone a iPad.)

Quando si desidera condividere i dati tra i controller di vista ... la soluzione è il NSNotificationCenter.

So che questo non risponde alla domanda, in tutto, ma se voglio condividere i dati tra i controller di vista: Nel controller della vista invio

NSMutableDictionary *toshare = [[NSMutabledictionary alloc] init];
[toshare setValue:valueToShare forKey:@"shared"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"imSharing" withObject:nil userInfo:(NSDictionary *)toshare];

Nel regolatore di visualizzazione di ricezione: Posto nel viewDidLoad

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(imSharing:) name:@"imSharing" object:nil];

quindi aggiungere questa funzione:

-(void)imSharing:(NSNotification *)notification {
      NSDictionary *dictionary = [notification userInfo]; 
        //do something with [dictionary objectForKey:@"shared"];
        dictionary = nil;
}

Questo funziona per la condivisione dei dati tra 2 controller di vista ... beh, piccole quantità di dati in ogni modo.

In caso contrario, guarda qui per ulteriori informazioni sulla condivisione dei dati tra vista controllori

Stai usando Interface Builder? E 'molto più facile per creare una nuova sottoclasse UIViewController in Xcode con il file pennino, e poi trascinare nella UIPicker. Allora avete bisogno di presentare il controller della vista in un popover. fogli d'azione non sono progettati per avere subviews, in modo da non farlo.

ho fatto: vedere il terzo screenshot in C64 vernice

.

Grazie per le risposte a tutti. Così, mentre non posso dire quale sia il problema iniziale è stato, ho iniziato il problema da zero e ottenuto al lavoro. Ho fatto visione completamente nuova Controller e visualizzato in una Popover e ha funzionato bene. Sembra essere uno dei punti più difficili di fare un'applicazione universale.

L'UIPickerView funzionerà se si crea sul iPad se si crea in questo modo:

UIPickerView* pickerView = [[UIPickerView alloc]initWithFrame: CGRectMake (someX, someY, 320, 216)];

Alcune altre dimensioni non sembrano funzionare. Ma CGRectZero Non funziona su iPad -. Anche se funziona in iPhone

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top