2012-10-08 47 views
8

Tengo este problema, sin embargo, parece que no hay nada de la información que pueda encontrar en este foro o Internet capaz de ayudarmeSe espera que las ventanas de aplicaciones tengan un controlador de vista raíz al final del lanzamiento de la aplicación, incluso con todos los problemas conocidos solucionados

Parece que hay dos lugares en los que este error puede tener lugar:

  1. main.m - mi función es el siguiente:
int main(int argc, char *argv[]) 
    { 
     @autoreleasepool { 
      return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 
     } 
    } 

El último argumento en UIApplicationMain devuelve un valor de NSString la clase de mi AppDelegate. Por lo tanto, esto está funcionando bien.

2.AppDelegate.m - hay una manera "más antiguo" de la configuración del controlador de vista raíz, que es la siguiente:

[self.window addSubview:rootViewController]; 

Sin embargo, en mi aplicación que ya ha sido actualizado a:

self.window.rootViewController = self.viewController; 
[self.window makeKeyAndVisible]; 

Ninguno de la información actual en Internet funciona. Es un poco más desconcertante ya que mi colega puede hacer que funcione perfectamente en su computadora; fue él quien me envió el código fuente de la aplicación para que todos los ajustes y el código sean exactamente los mismos.

Estoy tratando de iniciar esto en el simulador. Está construido contra iOS 5, pero estoy tratando de ejecutarlo en el simulador iOS 6.0.

Tengo el último XCode (4.5.1).

¿Hay alguna razón para que esto suceda? ¿Y cómo puedo rectificarlo?

Muchas gracias

Tom

+0

duplicados: http://stackoverflow.com/q/7520971/9530 http://stackoverflow.com/q/8706828/9530 http://stackoverflow.com/q/8190567/9530 http://stackoverflow.com/q/11515818/9530 http://stackoverflow.com/q/9844626/9530 y posiblemente más –

Respuesta

17

Me encontré con exactamente lo mismo tratando de agregar un UITableView a una aplicación de vista única. En su lugar, crear un proyecto de aplicación Maestro-Detalle defecto (Archivo-> Nuevo-> target -> ...) y ver la implementación del AppDelegate de didFinishLaunchingWithOptions:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
// Override point for customization after application launch. 

MDMasterViewController *masterViewController = [[MDMasterViewController alloc] initWithNibName:@"MDMasterViewController" bundle:nil]; 
self.navigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController]; 
self.window.rootViewController = self.navigationController; 
[self.window makeKeyAndVisible]; 
return YES; 
} 

En lugar de fijar directamente el controlador de vista como RootViewController de la ventana , necesita crear un controlador de navegación iniciado con su controlador de vista para initWithRootViewController, luego configure ese controlador de navegación como el control raíz de la ventana. (Observe que también tiene que arrancar ese controlador de navegación en una propiedad para que no se destruya).

0

Haga lo siguiente añadir un punto de interrupción de excepción en el código, al menos, para ver si se puede averiguar cuál es el problema. Use el tutorial this si no sabe cómo hacerlo. Además, ¿hay advertencias cuando compila? Incluso si te permite compilar, a veces las advertencias pueden revelar por qué tu aplicación se bloquea.

+0

Esto no es realmente una respuesta. No puedo establecer puntos de corte porque el error ocurre tan pronto como 'application: didFinishLaunchingWithOptions' devuelve' YES/NO' para que no haya un lugar específico donde la aplicación se cuelga. No es un choque tampoco, no puedo rastrear en GDB. La aplicación parece estar ejecutándose, pero no aparece nada en la pantalla del simulador. –

+0

Acabo de arrojar mis 2 centavos. Lo siento si no pude ayudarte. – Peres

+0

Gracias por la entrada. :) –

3

tratar de definir el controlador de vista por defecto en el menú proyecto,

seleccione su proyecto => Resumen => Interfaz principal => Llene controlador principal vista

cada vez que empecé nuevo proyecto me enfrenté al mismo error que tú, haciendo esto cada vez que se resuelve, espero que esto te ayude.

+1

Ahora es Proyecto> General> Información de implementación> Interfaz principal –

6

Sólo cambia esto:

[window addSubview:tabBarController.view]; 

a esto:

[window setRootViewController:tabBarController]; 

O lo era en el addSubview:

+0

Esta fue la solución para mí. –

+0

debe marcarse como la respuesta correcta – Sandeep

Cuestiones relacionadas