2012-03-28 4 views
-2

Как изменить текст ярлыка? Это то, что я пробовал.Изменить ярлык Текст

labelCheckBox.text = @"This is the new label"; 

Я соединил метку в построителе интерфейса для labelCheckBox и создал для нее розетку. В Didload текст ярлыка изменился, но в другом методе внутри класса он не имеет нового значения.

-(void)settext:(NSString*)newLabelText{ 

labelCheckBox.text = newLabelText; 
// labelCheckBox = [[UILabel alloc] init]; 
// labelCheckBox.text = @"This is the new label"; 

} 

Я называю этот метод в другом классе, как показано здесь:

[New settext:@"All Transaction"]; 

Значение 'NewLabelText' после его печати в NSLog является: "All Transaction". Но когда я назначаю 'LabelCheckBox.Text = NewLabelText', я печатаю значение 'LabelCheckBox.Text', , и оно дает пустое.

+1

Этот код верный, поэтому, если вы не предоставите больше информации, никто не сможет вам помочь! – Zalykr

+0

Вы создаете этот 'UILabel' программно или из интерфейса Builder? –

+0

Соединили ли вы свой ярлык в Interface Builder для labelCheckBox и создали для него розетку? –

ответ

3

Прежде всего, если вы используете IB, вам необходимо создать розетку и соединение для вашего UILabel. Самый простой способ перетащить с вашего лейбла (control + drag) в ваш .h-файл класса контроллера. Затем синтезируйте его в файле .m, и теперь вы можете изменить текст метки, как вы это делаете.

+1

Синтез автоматически добавляется Xcode. – dasdom

1

«Вид» должен загружаться перед установкой текста этикетки.

0

Разработка iOS иногда дает вам обработку молчания, такую ​​как Javascript, чтобы предотвратить повреждение вашего приложения. С учетом сказанного, если вы создали UILabel в Interface Builder и установили для него IBOutlet, убедитесь, что вы меняете текст только после создания UILabel. (то есть после -viewDidLoad). Вы можете установить точку останова на место, где вы установили изменение текста и точку останова на -viewDidLoad в UIViewController, которая содержит UILabel, чтобы подтвердить порядок вызовов, которые происходят.

0

Ниже код изменится текст этикетки со значением тега

В scrollview использовании этого типа, чтобы изменить текст в метке

for(UIView *views in ScrollViewMain.subviews) 
{ 
    UILabel *label = [views viewWithTag:[sender tag]+1000]; 
    label.text=str1; 
} 

Это будет действительно работать. спасибо

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