2013-07-10 15 views
6

Sto cercando di aggiungere il file xib o qualsiasi altro file del controller di visualizzazione all'interno della libreria statica, ma non posso farlo. Potete per favore aiutarmi?come aggiungere il file xib nella libreria statica in iOS

Se possibile, aggiungere l'intero codice sorgente

loro è il pulsante a prima vista. E quando si fa clic su quel pulsante, i nuovi controller di visualizzazione presentano qualcosa (diciamo cambiamenti nel colore di sfondo). Come creare una libreria statica per questo? in modo che io possa usarlo in un altro progetto?

Grazie in anticipo

+0

http://stackoverflow.com/questions/6859143/whether-nib-xib-files-can-be-added-to-a-static-library hanno un look di questo può aiutare a. –

+0

Quando creiamo una libreria statica, fornisce i file .h e .m in cui dobbiamo scrivere il codice. Sì, possiamo scrivere facilmente la funzione Fibonacci. Cosa succede se desidero visualizzare la tabella nella prima vista. Dato che non ho alcun file xib. Posso creare una funzione e posso creare tableview in modo programmatico. e se selezioniamo una cella, è necessario che venga visualizzato un nuovo controller di visualizzazione. Per favore puoi guidarci. –

risposta

4

In senso stretto, è corretto che non è possibile aggiungere uno Xib a una libreria statica. Tuttavia, ci sono soluzioni alternative. Il tutorial sulla libreria iOS con risorse di Matt Galloway ti mostrerà come fare proprio questo.

Vedere iOS Library With Resources.

+0

hanno già provato con questo esempio, ma non ha potuto creare così ... –

+0

Funziona sicuramente anche se ci possono essere stati ulteriori passi necessari per ottenere il bundle nel progetto principale. Dovrei controllare ... –

+0

, se possibile, mi potete inviare i passaggi per creare libreria di file aggiuntivo XI ter nel .he .m file in esso –

0

XIB è come risorsa e ciò libreria statica è, un file compilato che contiene ur classi. Puoi dire che è il tuo codice compilato pronto per essere utilizzato. Non è possibile aggiungere xib alla libreria statica.

+0

Salve, non possiamo aggiungere il file xib. ma sì, possiamo aggiungere pulsanti o qualsiasi altro oggetto dalla libreria di uikit in framework uikit. Ma la mia domanda è come passare da un controller della vista ad un altro in libreria statica –

+0

non ho ricevuto voi, codice della navigazione per la libreria statica sarebbe lo stesso quello che usiamo di solito .. Un consiglio, se si desidera utilizzare UI nella vostra libreria, allora utilizzare subviews piuttosto che utilizzare Viewcontrollers ... – BhushanVU

+0

Ok ora come posso aggiungere visualizzazione secondaria –

6

Se si desidera creare le interfacce utilizzando il generatore di interfacce durante la creazione di una libreria statica, sarà necessario creare un pacchetto e distribuirlo con la libreria.

In Xcode:

  1. File> Nuovo> Target
  2. Selezionare "Bundle" dal quadro OS X e la sezione Biblioteca
  3. compilare i dettagli. Il framework del bundle dovrebbe essere il fondamento centrale.

Quindi è necessario che il pacchetto venga compilato contemporaneamente al framework. Aggiungi il pacchetto alla fase di costruzione "Dipendenze di destinazione" del tuo framework.

Quando crei i tuoi xibs, fai il loro obiettivo questo nuovo pacchetto che hai creato.

Quindi, quando si compila il framework nella directory dei dati derivati, accanto al file binario del framework si trova il pacchetto compilato. Tu dai questo ai tuoi terzi insieme al binario quadro.

Quindi, come si fa a fare riferimento a questo pacchetto nel codice? Nei bundle iOS non può essere caricato e il bundle sarà effettivamente all'interno del bundle principale dell'applicazione iOS di terze parti. È possibile creare una categoria a NSBundle per accedere comodamente il vostro pacco dal codice:

@interface NSBundle (mybundle) 
+(NSBundle *)myBundle; 
@end 

@implementation NSBundle (mybundle) 

static NSBundle * _myBundle; 

+(NSBundle *)myBundle{ 
    static dispatch_once_t onceToken; 
    dispatch_once(&onceToken, ^{ 

     NSBundle * mainBundle = [NSBundle mainBundle]; 
     NSString * pathToMyBundle = [mainBundle pathForResource:@"myBundle" ofType:@"bundle"]; 

     NSAssert(pathToMyBundle, @"bundle not found", nil); 

     _myBundle = [NSBundle bundleWithPath:pathToMyBundle]; 
    }); 

    return _myBundle; 
} 

È quindi possibile accedere al pacchetto in codice per caricare xibs in questo modo:

UIViewController * controller = [[UIViewController alloc] initWithNibName:nil bundle:[NSBundle myBundle]]; 

Ricordate che se usate le categorie nel tuo codice quadro dovrai assicurarti che i tuoi clienti del framework aggiungano il -ObjC (o -all_load se non usi un Xcode recente) "altro linker" ai loro progetti

+1

OMG - questo è stato il vincitore. Ha funzionato per me anche in Xcode 7. Molte delle esercitazioni più vecchie perdono il passo di aggiungere il bundle come dipendenza target. Grazie! – drudru

Problemi correlati