XLForm sans XIB/Storyboard

Bonjour,

 

J'utilise actuellement la librairie XLForm afin de créer un formulaire et j'aimerai me passer des XIB (et je n'utilise toujours pas les Storyboard...).

 

J'appelle la class "EditVC" de cette façon :



EditVC *editPC=[[EditVC alloc] init];

UINavigationController *navC = [[UINavigationController alloc] initWithRootViewController:editPC];

[self presentViewController:navC animated:NO completion:nil];

 

Celle-ci est implémentée de cette façon :



#import "XLFormViewController.h"

@interface EditVC : XLFormViewController

@end


#import "EditProfileVC.h"
#import "XLForm.h"

@implementation EditVC

#pragma mark - View lifecycle

//- (id)init
//{

- (void)viewDidLoad {

[super viewDidLoad];

XLFormDescriptor * form;
XLFormSectionDescriptor * section;
XLFormRowDescriptor * row;

form = [XLFormDescriptor formDescriptorWithTitle:@Add Event];

// First section
section = [XLFormSectionDescriptor formSection];
[form addFormSection:section];

// Title
row = [XLFormRowDescriptor formRowDescriptorWithTag:@title rowType:XLFormRowDescriptorTypeText];
[row.cellConfigAtConfigure setObject:@Title forKey:@textField.placeholder];
[section addFormRow:row];

// Location
row = [XLFormRowDescriptor formRowDescriptorWithTag:@location rowType:XLFormRowDescriptorTypeText];
[row.cellConfigAtConfigure setObject:@Location forKey:@textField.placeholder];
[section addFormRow:row];

// Second Section
section = [XLFormSectionDescriptor formSection];
[form addFormSection:section];

// All-day
row = [XLFormRowDescriptor formRowDescriptorWithTag:@all-day rowType:XLFormRowDescriptorTypeBooleanSwitch title:@All-day];
[section addFormRow:row];

// Starts
row = [XLFormRowDescriptor formRowDescriptorWithTag:@starts rowType:XLFormRowDescriptorTypeDateTimeInline title:@Starts];
row.value = [NSDate dateWithTimeIntervalSinceNow:60*60*24];
[section addFormRow:row];
}

@end

J'obtiens cette erreur lors de l'appel de la class :



*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "EditVC" nib but the view outlet was not set.'

 

Je pense que j'oublie quelques choses, mais je sèche complètement (10 jours que je suis bloqué...).

J'ai testé avec un NIB UIViewController + UITableView et un NIB avec un UITableViewController

 

Avez-vous déjà  testé cette librairie ?

 

Merci à  vous :)


Réponses

  • CéroceCéroce Membre, Modérateur

     


     


    view outlet was not set.

     


    Le rôle d'un UIViewController est de gérer une hiérarchie de vues. La vue racine correspond à  sa propriété "view".


    Dans le xib, il faut absolument que l'outlet "view" du File's Owner (= le view controller) soit reliée à  la vue racine.


  • ch3mzch3mz Membre
    août 2014 modifié #3

    Le rôle d'un UIViewController est de gérer une hiérarchie de vues. La vue racine correspond à  sa propriété "view".
    Dans le xib, il faut absolument que l'outlet "view" du File's Owner (= le view controller) soit reliée à  la vue racine.


    Merci pour ton retour.


    Je n'ai pas de fichier XIB justement, je voudrais m'en passer.
     
    Je viens de changer la méthode d'appel de ma class :
    //Egalement testé
    //UIViewController *vc = [[EditProfileVC alloc] init];
    UITableViewController *vc = [[EditVC alloc] init];
    [self.navigationController pushViewController:vc animated:NO];
Connectez-vous ou Inscrivez-vous pour répondre.