2013-04-12 4 views
0

Ребята это делали мою голову в течение нескольких часов .... :(Не удалось присвоить значение меток на контроллере перед отображением?

У меня есть массив контроллеров, которые загружаются в Scrollview

Я хочу, чтобы присвоить значения Ярлыка «Категория», но Я не могу сделать это - значение отображается как NULL ??

я могу однако жесткий код это в методе viewDidLoad

Я попробовал несколько подходов, но ни один работа ...

?

My .h файл выглядит следующим образом ...

@interface ReviewCategoryViewController : UIViewController { 
    @public 
    UILabel *CategoryTitle; 
} 

- (id)initWithCategory:(NSString *)category; 
- (id)setCategory:(NSString *)category; 

@property (strong, nonatomic) IBOutlet UILabel *CategoryTitle; 

@end 

Моей реализация выглядит следующим образом ...

- (id)setCategory:(NSString *)category 
{ 
    [self.CategoryTitle setText:category]; 
    NSLog(@">>2. Category %@ %@", category, CategoryTitle.text); 

    return self; 
} 

// load the view nib and initialize the pageNumber ivar 
- (id)initWithCategory:(NSString *)category 
{ 
    self = [super initWithNibName:@"ReviewCategoryViewController" bundle:nil]; 

    [self.CategoryTitle setText:category]; 
    NSLog(@">>1. Category %@ %@", category, CategoryTitle.text); 

    return self; 
} 

Моего вызов метода выглядит следующим образом ...

ReviewCategoryViewController *controller = [viewControllers objectAtIndex:cardNo]; 

    if ((NSNull *)controller == [NSNull null]) 
    { 
     NSString *temp = [categories_array objectAtIndex:cardNo]; 

     controller = [[ReviewCategoryViewController alloc] initWithCategory:temp]; 

     [controller setCategory:temp]; 

     [viewControllers replaceObjectAtIndex:cardNo withObject:controller]; 
    } 

Моего журнал показывает следующие ????

2013-04-12 16:54:27.507 Review Writer[14455:11603] >>1. Category Adapability **(null)** 
2013-04-12 16:54:27.509 Review Writer[14455:11603] >>2. Category Adapability **(null)** 
+0

вы уверены, что вы связали свою метку в Interface Builder? Попробуйте распечатать NSLog (@ ">> 1. Категория% @% @", категория, CategoryTitle); чтобы убедиться, что он правильно связан – calampunay

ответ

0

Вы можете установить категорию в глобальной переменной и задать текст Лабе в методе didLoad:

- (id)initWithCategory:(NSString *)category 
{ 
    self = [super initWithNibName:@"ReviewCategoryViewController" bundle:nil]; 

    // categoryStr is a global NSString var 
    categoryStr = category; 

    return self; 
} 

- (void)viewDidLoad 
{ 
    [self.CategoryTitle setText:categoryStr]; 
} 
+0

Спасибо, что этот метод отлично работает – rs2000

0
- (id)initWithCategory:(NSString *)category 
{ 
    seidlf = [super initWithNibName:@"ReviewCategoryViewController" bundle:nil]; 

    [self.CategoryTitle setText:category]; 
    NSLog(@">>1. Category %@ %@", category, CategoryTitle.text); 

    return self; 
} 

После вызова self = [super initWithNibName:@"ReviewCategoryViewController" bundle:nil]; ссылки на розетку пока не установлено до сих пор. Вы можете использовать свои точки только после того, как представление загружено в метод viewDidLoad;

Смежные вопросы