UIViewControllerでUILabelを作成し、そのラベルを変更する関数を作成しました。これらは.hファイルで次のように初期化されます。
@interface StoreDetailsController : UIViewController {
UILabel *storeNameLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *storeNameLabel;
- (IBAction)LabelTheStore:(int)storeNumber;
次に、.mファイルで:
@synthesize storeNameLabel;
...
-(void)LabelTheStore:(int)storeNumber
{
NSLog(@"CHECK NUMBER: %d", storeNumber);
storeNameLabel = [[UILabel alloc] init];
storeNameLabel.text = @"TEST";
}
int変数が関数に渡され、関数が使用されます。ログには、通過した内容に基づいて正しい番号が表示されるため、関数が正しく呼び出されていることはわかりますが、別のクラスから関数を呼び出してもラベルは更新されません。storeNameLabel.textでNSLogを呼び出すと、(null)であることが表示されます。
storeNameLabelはInterfaceBuilderで正しくリンクされており、プログラムは正常にビルドされます。アップデート:
StoreDetailsControllerをロードするメソッド:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
StoreDetailsController *storeDetailsController = [StoreDetailsController alloc];
storeDetailsController = [storeDetailsController initWithNibName:@"StoreDetailsController" bundle:[NSBundle mainBundle]];
NSInteger row = indexPath.row;
[storeDetailsController LabelTheStore:row];
[self.navigationController pushViewController:storeDetailsController animated:YES];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}