Изменить текст кнопки с xcode?

Это простая проблема, не знаю, почему у людей такое сложное решение. Простая функция сортировки (на основе алгоритма быстрой сортировки):

function sortObjectsArray(objectsArray, sortKey)
        {
            // Quick Sort:
            var retVal;

            if (1 < objectsArray.length)
            {
                var pivotIndex = Math.floor((objectsArray.length - 1) / 2);  // middle index
                var pivotItem = objectsArray[pivotIndex];                    // value in the middle index
                var less = [], more = [];

                objectsArray.splice(pivotIndex, 1);                          // remove the item in the pivot position
                objectsArray.forEach(function(value, index, array)
                {
                    value[sortKey] <= pivotItem[sortKey] ?                   // compare the 'sortKey' proiperty
                        less.push(value) :
                        more.push(value) ;
                });

                retVal = sortObjectsArray(less, sortKey).concat([pivotItem], sortObjectsArray(more, sortKey));
            }
            else
            {
                retVal = objectsArray;
            }

            return retVal;
        }

Пример использования:

var myArr = 
        [
            { val: 'x', idx: 3 },
            { val: 'y', idx: 2 },
            { val: 'z', idx: 5 },
        ];
myArr = sortObjectsArray(myArr, 'idx');
29
задан Linuxmint 10 March 2011 в 19:08
поделиться

7 ответов

Если у вас есть кнопка, которая связана с действием в вашем коде, вы можете изменить заголовок без переменной экземпляра.

Например, если кнопка настроена на это действие:

-(IBAction)startSomething:(id)sender;

Вы можете просто сделать это в методе:

-(IBAction)startSomething:(id)sender {
    [sender setTitle:@"Hello" forState:UIControlStateNormal];
}

Или если вы желая переключить имя кнопки, вы можете создать BOOL с именем «buttonToggled» (например) и изменить имя таким образом:

-(IBAction)toggleButton:(id)sender {
    if (!buttonToggled) {
        [sender setTitle:@"Something" forState:UIControlStateNormal];
        buttonToggled = YES;
    }
    else {
        [sender setTitle:@"Different" forState:UIControlStateNormal];
        buttonToggled = NO;
    }
}
73
ответ дан sudo rm -rf 10 March 2011 в 19:08
поделиться
UIButton *myButton;

[myButton setTitle:@"My Title" forState:UIControlStateNormal];
[myButton setTitle:@"My Selected Title" forState:UIControlStateSelected];
19
ответ дан NWCoder 10 March 2011 в 19:08
поделиться

Да. На UIButton есть метод -setTitle:forState:, использующий это.

5
ответ дан Simon Goldeen 10 March 2011 в 19:08
поделиться
[myButton setTitle:@"Play" forState:UIControlStateNormal];
4
ответ дан FreeAsInBeer 10 March 2011 в 19:08
поделиться

Еще один способ переключения:

- (IBAction)signOnClick:(id)sender
{
    if ([_signOnButton.titleLabel.text isEqualToString:@"Sign off"])
    {
        [sender setTitle:@"Sign on" forState:UIControlStateNormal];
    }
    else
    {
        [sender setTitle:@"Sign off" forState:UIControlStateNormal];
    }
}
4
ответ дан Robert 10 March 2011 в 19:08
поделиться

Нет необходимости добавлять if {} else {} управляющий поток. Инициализируйте тексты кнопок для различных состояний в конструкторе View или ViewController:

[btnCheckButton setTitle:@"Normal" forState:UIControlStateNormal];
[btnCheckButton setTitle:@"Selected" forState:UIControlStateSelected];

Затем переключите состояние кнопки в «Выбрано»:

[btnCheckButton setSelected:YES];

Затем переключите состояние кнопки в «Нормальное»:

[btnCheckButton setSelected:NO];
2
ответ дан Javier Calatrava Llavería 10 March 2011 в 19:08
поделиться

myapp.h

{
UIButton *myButton;
}
@property (nonatomic,retain)IBoutlet UIButton *myButton;

myapp.m

@synthesize myButton;

-(IBACtion)buttonTitle{
[myButton setTitle:@"Play" forState:UIControlStateNormal];
}
3
ответ дан JohnAnge Kernodle 10 March 2011 в 19:08
поделиться