13

Ok, es una pregunta tipo novato.controlador de la barra de pestañas iphone y datos del núcleo

Quiero usar Core Data, junto con los controles Tab y Navigation.

En XCode, si creo una aplicación basada en navegación, tengo la opción de elegir Datos básicos. Mientras que si creo una aplicación de barra de pestañas, no tengo la opción.

Entiendo que las barras de pestañas muestran los controladores de vista por lo que tiene sentido. Sin embargo, dado que, de forma predeterminada, se pega el código básico de datos básicos en el delegado de la aplicación, no veo por qué no se ofrece.

Por el momento estoy creando los dos proyectos y cortando y pegando entre ellos.

¿Te parece extraña esta omisión en XCode? ¿Es algún tipo de supervisión?

Gracias, Matt

Respuesta

6

Las plantillas están diseñadas para ser más 'puro', cualquier combinación de las plantillas se deja como ejercicio para el desarrollador.

Podrían hacer una plantilla CoreData + Tab y Nav Controller, pero para ser justos, tendrían que hacer todas las demás combinaciones que pudieran ser 'razonables'.

Combinarlos usted mismo no es tan difícil, y hay aplicaciones de muestra en el centro de desarrollo que muestran algunas de las combinaciones dentro de una aplicación en funcionamiento.

+0

Ok, eso tiene sentido gracias por su respuesta. – Sway

2

tenía que hacer lo mismo, creo que la forma más fácil es crear una "aplicación basada en la ventana", a continuación, declarar una tabBarController en su AppDelegate así:

AppDelegate.h

@interface CommUnityAppDelegate : NSObject <UIApplicationDelegate> { 
UITabBarController *tabBarController; // add this 
UIWindow *window; 
} 

// and this 
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController; 

En su MainWindow.xib inserte un TabBarController y conéctelo con su AppDelegates tabBarController.

Después de que lo hacen visibles mediante la adición siguiente línea

AppDelegate.m

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
    [window addSubview:tabBarController.view]; // add this 
    [window makeKeyAndVisible]; 
} 

Esto le da una configuración básica y desde allí se puede agregar fácilmente los controladores de navegación con el constructor de interfaces

+0

Genial. Eso fue realmente útil. Seguirá este enfoque a partir de ahora. Cheers, Matt – Sway

+2

Es mucho más fácil agregar el controlador de barra de pestañas a un proyecto de Core Data que agregar los datos de Core Data a un proyecto de barra de pestañas porque muchos de los métodos y variables de Data Core en el delegado de la aplicación se crean para usted. –

+0

También si agrega "@synthesize tabBarController;" a AppDelegate.m se eliminarán un par de advertencias. –

12

Me enfrenté al mismo problema y terminé creando una aplicación tabBar y añadiendo los datos centrales más tarde.

Para ello, he:

  1. añade el marco coredata a mi proyecto
  2. añade import < CoreData/CoreData.h> a myproject_Prefix.pch
  3. declaraciones para delegar cabecera añadida y implementaciones getter creadas por las plantillas que admiten datos básicos
  4. crear archivo de modelo - agregar archivo al grupo de recursos (o donde quiera que coloque su modelo) y crear un archivo de modelo de datos.

Esto debería llevarlo al mismo punto en el que estaría con las plantillas de soporte de datos centrales.

para su caso específico (datos básicos con barra de pestañas), Apple tiene una buena aplicación de ejemplo:

http://developer.apple.com/iphone/library/samplecode/iPhoneCoreDataRecipes/index.html

Esto muestra cómo pasan el contexto a través del controlador de vista pertinente definido en el archivo xib que fue lo que me sostuvo por un tiempo.

Espero que esto ayude.

Saludos, Peter

7

Puede agregar usted mismo es muy simple de hacer:

Para modificar la configuración de la plantilla barra de pestañas que tienes que abrir el archivo siguiente

Para XCode 4.2:

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/Application/Tabbed Application.xctemplate/TemplateInfo.plist 

Para añadir núcleo opción de datos, tiene que agregar la propiedad "com.apple.dt.unit.coreDataCocoaTouchApplication" a la clave Antepasados:

a espués de la adición de la propiedad que debe tener este aspecto:

<key>Ancestors</key> 

<array> 
<string>com.apple.dt.unit.storyboardApplication</string> 
<string>com.apple.dt.unit.coreDataCocoaTouchApplication</string> 
</array> 

Para XCode anteriores versiones

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/Application/Tab Bar Application.xctemplate/TemplateInfo.plist 

Para añadir la opción de datos básicos que hay que añadir la propiedad "com.apple.dt.unit.coreDataCocoaTouchApplication" a los antepasados ​​clave:

después de añadir la propiedad que debe tener este aspecto:

<key>Ancestors</key> 

<array> 
<string>com.apple.dt.unit.cocoaTouchFamiliedApplication</string> 
<string>com.apple.dt.unit.coreDataCocoaTouchApplication</string> 
</array> 

¡Reinicia el Xcode!

Todo debería funcionar bien ahora: !! Y tiene la opción Datos básicos visible cuando crea un nuevo proyecto con pestañas en Xcode.

+0

has probado si la aplicación que lo está usando funciona? Porque hay algo extraño en pasar managedObjectContext en la barra de pestañas ver controladores – kappa

+0

Esto funciona como un encanto en Xcode 5. –

+0

funciona para mí solo necesita hacer un trabajo extra votada – makboney

Cuestiones relacionadas