Por lo que sé, esto no es posible ya que el marco del guión gráfico simplemente llama a alloc
y init
en la clase que defina en Interfacebuilder. Además, el atributo destinationViewController
del segue es de solo lectura, por lo que no podría simplemente reemplazar el ViewController existente.
La única forma de utilizar Storyboard, probablemente sería crear una clase contenedora que crea una instancia interna del SFListViewController
con los atributos deseados y luego funciona como un objeto proxy y por lo tanto se propaga viewDid***
y viewWill***
-Métodos a la clase envuelta y también volver la vista de VC envuelta en una propiedad de view
readonly ... Ya entendió la idea.
Generalmente hay una serie de formas alternativas para inicializar un UIViewController
en tal caso:
Hay una opción para especificar "tiempo de ejecución definido atributos de usuario" que podría ser utilizado para la inicialización.
Anule el método prepareForSegue:
, como lo intentó en su controlador raíz ViewController y haga "post-alloc-init-initialisation" allí.
Si lo peor es peor, puede recurrir a un IBAction
para poder inicializar ViewController usted mismo.
Espero que esto ayude.
Editar: puedo comprobar que el Proxy-enfoque funciona desde que encontré con un problema similar con ABPeoplePickerNavigationController
donde este enfoque funcionó muy bien. Como hemos configurado la situación en nuestra historia, tenga en cuenta que debe usar awakeFromNib
para realizar la configuración inicial (en lugar de algún método init
).
Este es el código para mi clase de contenedor:
#import "PeoplePickerViewControllerWrapper.h"
@implementation PeoplePickerViewControllerWrapper
@synthesize ppvc = _ppvc; // This is the object I'm proxying (The proxyee so to speak)
@synthesize delegate = _delegate;
- (void)awakeFromNib
{
self.ppvc = [[ABPeoplePickerNavigationController alloc] init ];
self.ppvc.peoplePickerDelegate = self;
self.ppvc.addressBook = ABAddressBookCreate();
self.ppvc.displayedProperties = [NSArray arrayWithObject:[NSNumber numberWithInt:kABPersonPhoneProperty]];
}
#pragma mark - View lifecycle
- (void)loadView
{
[super loadView];
[self.ppvc loadView];
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self.ppvc viewDidLoad];
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.ppvc viewWillAppear:animated];
}
-(void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
[self.ppvc viewDidDisappear:animated];
}
-(UIView *)view{
return self.ppvc.view;
}
- (void)viewDidUnload
{
[super viewDidUnload];
[self.ppvc viewDidUnload];
}
+1 Esa es una buena pregunta, he tenido un problema similar al dejar Interface Builder instancias de objetos. – Besi