0

みんな、これは何時間も頭を悩ませてきました.... :(

スクロールビューにロードされるコントローラーの配列があります

Label 'Category' に値を割り当てたいのですが、これを行うことができません - 値が NULL と表示されます??

ただし、メソッド viewDidLoad でこれをハードコーディングできますか?

いくつかのアプローチを試しましたが、どれも機能しませんか? ...

私の .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)**
4

2 に答える 2

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];
}
于 2013-04-12T17:07:39.703 に答える
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ビューがメソッドにロードされた後にのみ、アウトレットを使用できます。

于 2013-04-12T16:28:08.783 に答える