2013-10-22 15 views
6

Ho provato a seguire le istruzioni su questo Question. Ma non devo fare qualcosa correttamente perché sto ancora ricevendo un SIGABRT prima ancora di entrare nei metodi ViewController.Rimuovere lo storyboard e avviare l'app con .xib

Ecco i passaggi:

  1. copiato tutte le voci sulla vista nella story board e incollato nella nuova vista XI ter.
  2. Copiato tutti i contenuti di .h e .m visualizza i file del controller in quelli nuovi per lo xib.
  3. Modificato il nome base del file di pennino principale nel nuovo nome xib nel file info.plist.
  4. Ho provato a cambiare il proprietario ma non so se lo sto facendo correttamente.
  5. modificato il file didFinishLaunchingWithOptions AppDelegate come segue:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    
    { 
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] ; 
    
        // Override point for customization after application launch. 
    
        TestViewController *test = [[TestViewController alloc]   initWithNibName:@"TestViewController" bundle:nil]; 
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:test]; 
        self.window.rootViewController = nav; 
    
        [self.window makeKeyAndVisible]; 
    
        return YES; 
    } 
    
  6. Ho anche provato a partire con un progetto vuoto, come uno degli ultimi messaggi proposti e ancora ottenere un SIGABRT quando provo a correre.

Apple ha reso impossibile rimuovere lo storyboard? Sto creando un SDK. Non voglio uno storyboard. Ma ho bisogno di uno xib che sia girevole.

Aiuto?

+0

ripetuto di questa domanda qui ... http://stackoverflow.com/questions/17234172/xcode- 5-without-storyboard-and-arc? Lq = 1 – logixologist

+0

Prova questo link .... questo dovrebbe darti quello che stai cercando di fare ... http://stackoverflow.com/questions/17234172/xcode- 5-wit hout-storyboard-and-arc? lq = 1 – logixologist

+0

Ho inserito i link sopra come risposta :( – logixologist

risposta

6

si sta andando a voler creare un'applicazione vuota, quindi premere cmd +n e scegliere coca touch > objective-c class. nominare la classe RootViewController e lasciare la sottoclasse da sola (UIViewController) quindi controllare With XIB for user interface.

Una volta fatto questo, andare nel file AppDelegate.m e aggiungere il seguente codice sotto - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions sopra ritorno: SI

self.RootViewController = [[RootViewController alloc] init]; 
self.navController = [[UINavigationController alloc] initWithRootViewController:self.RootViewController]; 
self.navController.navigationBarHidden = YES; 
[self.window addSubview:self.navController.view]; 

Quindi, dovrebbe apparire così:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    self.window.backgroundColor = [UIColor whiteColor]; 
    [self.window makeKeyAndVisible]; 
    self.RootViewController = [[RootViewController alloc] init]; 
    self.navController = [[UINavigationController alloc] initWithRootViewController:self.RootViewController]; 
    self.navController.navigationBarHidden = YES; 
    [self.window addSubview:self.navController.view]; 
    return YES; 
} 

quindi aggiungere #import "RootViewController.h" appena sotto #import "AppDelegate.h". dopo averlo fatto, vai al tuo file AppDelegate.h e aggiungi @class RootViewController; sopra l'interfaccia @. Quindi, aggiungere il seguente codice sotto @interface AppDelegate:

@property (strong, nonatomic) RootViewController *RootViewController; 
@property (strong, nonatomic) UINavigationController *navController; 

Così l'intero AppDelegate.h dovrebbe apparire come questo:

#import <UIKit/UIKit.h> 

@class RootViewController; 

    @interface AppDelegate : UIResponder <UIApplicationDelegate> 


    @property (strong, nonatomic) UIWindow *window; 
    @property (strong, nonatomic) RootViewController *RootViewController; 
    @property (strong, nonatomic) UINavigationController *navController; 

@end 

Ora che hai fatto tutto questo si dovrebbe essere in grado di iniziare a scrivere codice tua applicazione come faresti di solito per un file xib! In bocca al lupo!

2

È stata assegnata la classe appropriata nel controllo identità del file xib?

enter image description here

+0

Grande cosa da controllare. Ma iniziare con un progetto vuoto ha funzionato per me quando l'ho provato per la seconda volta. Xcode deve essersi infastidito. Grazie per l'aiuto. – Patricia

+0

Np. Sono contento che tu abbia funzionato .. –

1

Cerca all'interno del tuo info.plist. Contiene ancora la chiave UIMainStoryboardFile ("Nome base file storyboard principale") con valore "Main"?Rimuovi questa coppia chiave-valore e che dovrebbe risolvere il problema :) classe

3

1.Add viewcontroller file proprietario

enter image description here

2.AppDelegate .h file

@property (forte, nonatomic) ViewController * viewController;

3.AppDelegate .m File

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Override point for customization after application launch. 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 
    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

o

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
self.window.backgroundColor = [UIColor whiteColor]; 
ViewController *loginVC = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:loginVC]; 
self.window.rootViewController = navigationController; 
[self.window makeKeyAndVisible]; 

return YES; 
Problemi correlati