Estoy creando mi propio UITableViewCell
personalizado para usar como back-end de un prototipo de celda. En mi clase anulo el método initwithstyle:reuseIdentifier:
para hacer algunas inicializaciones personalizadas, pero no se llama a mi inicializador. Tengo un punto de quiebre en la primera línea dentro de él, así como un punto de quiebre en dequeueResusableCellWithIdentifier:
. Se llama al método dequeueResusableCellWithIdentifier:
y devuelve una celda iniciada, pero no se alcanza el punto de corte en initwithstyle:reuseIdentifier:
. Cualquier ayuda sería genial.initwithstyle: reuseIdentifier: no se llama
Respuesta
Si su celda se está creando a partir de un prototipo de guión gráfico (que ha declarado como clase personalizada en IB), no se creará con initWithStyle...
sino initWithCoder:
como cualquier otro objeto cargado desde un plumín. Si tiene algún código de configuración, debe estar allí o en awakeFromNib
.
¿Hay algún lugar en los documentos que indique que initWithCoder siempre se utiliza cuando se carga desde un plumín? Su respuesta ayudó, pero me gustaría leer los documentos pertinentes en caso de que haya algo más que me he perdido. –
¡Buena pregunta! Lo más cerca que puedo encontrar es [aquí] (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CocoaViewsGuide/SubclassingNSView/SubclassingNSView.html), en "Inicializando ver instancias creadas en el generador de interfaz" – jrturton
Hmm interesante, sugieren usar awakeFromNib para hacer cualquier configuración inicial. Entonces, initWithCoder definitivamente recibe una llamada cada vez? –
Con el guión gráfico involucrado, todo cambia. Este es el método que se llama.
-(id)initWithCoder:(NSCoder *)aDecoder {
if (!(self = [super initWithCoder:aDecoder])) return nil;
// Your code goes here!
return self;
}
Si está utilizando StoryBoarsd continuación UITableViewContoller no llamará initWithStyle reemplazarlo con initWithCoder se funciona ahora
- 1. ViewForAnnotation no se llama
- 2. MKAnnotationView drawRect: no se llama
- 3. iPhone: ¿Hay alguna manera de cargarFromNib Y tener un reuseIdentifier?
- 4. onPostExecute no se llama
- 5. onPageScrolled() no se llama
- 6. textFieldShouldReturn no se llama
- 7. fbDidLogin no se llama
- 8. WebMethod no se llama
- 9. didReceiveRemoteNotification no se llama
- 10. mouseMoved no se llama
- 11. View.onMeasure() no se llama
- 12. onServiceConnected() no se llama
- 13. forwardInvocation no se llama?
- 14. accesorioButtonTappedForRowWithIndexPath: no se llama.
- 15. didReceiveAuthenticationChallenge no se llama
- 16. UITableView cellforrowatindexpath no se llama
- 17. MPMoviePlayerPlaybackDidFinishNotification se llama cuando no
- 18. onDraw personalizada() no se llama
- 19. EKEventViewDelegate didCompleteWithAction no se llama
- 20. NuGet - install.ps1 no se llama
- 21. Android onConfigurationChanged no se llama
- 22. Reductor Hadoop no se llama
- 23. Tomcat ServletContextListener.contextDestroyed no se llama
- 24. dylib destructor no se llama
- 25. Intento implícito no se llama
- 26. UIViewController -viewDidLoad no se llama
- 27. Ruta troncal no se llama
- 28. localStorage eventListener no se llama
- 29. La función no se llama
- 30. Drupal hook_views_post_execute no se llama
Muéstranos el código de su 'UITableViewDataSource' donde se está creando y células de volver por favor. – mattjgalloway
Tengo el mismo problema. Pero no estoy usando guiones gráficos, lo estoy creando programáticamente. ¿Alguien sabe por qué el initWithStyle no se llama entonces? – Michael