Текст UILabel не изменится - PullRequest
0 голосов
/ 09 сентября 2011

Эй, ребята, я создаю UILabel и UIButton программно внутри другой кнопки, поэтому, когда эта кнопка нажата, она создает UILabel и UIButton и добавляет их в качестве подпредставления на отдельной странице. Я хочу, чтобы кнопка могла добавить 1 к значению метки. Вот код для кнопки, которая добавляет метку ко второму виду:

-(IBAction)outlet1:(id)sender{
UIButton *addButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[addButton addTarget:self action:@selector(addButton1:)    
forControlEvents:UIControlEventTouchUpInside];
[addButton setTitle:@"+" forState:UIControlStateNormal];
addButton.frame = CGRectMake(80.0, 210.0, 35, 40.0);
[cart.view addSubview:addButton];

UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(137, 150, 25, 35)];
label.backgroundColor = [UIColor clearColor];
label.text = @"1";
[cart.view addSubview:label];
}

и это кнопка, на которой я хочу изменить метку:

- (void)addButton1:(id)sender {
[black.label setText:[NSString stringWithFormat:@"%d",[black.label.text intValue] +1]];    
}

black это ивар, связанный с первым viewController, а cart связан со вторым viewController! Моя проблема в том, что когда я нажимаю кнопку, подключенную методом addButton1:, происходит сбой? Заранее спасибо за помощь!

1 Ответ

1 голос
/ 09 сентября 2011

Вам нужно инициализировать UILabel в viewDidLoad и создать для него ivar , после чего вы сможете получить к нему доступ по всей вашей @implementation.

@synthesize label;

- (void) viewDidLoad
{
    label = [[UILabel alloc] initWithFrame:CGRectMake(137, 150, 25, 35)];
}
...