Как я могу передать аргументы в методе выбора кнопок в iPhone? - PullRequest
0 голосов
/ 22 января 2011

Теперь я хочу передать аргументы в методе выбора кнопок, так как я могу передать эти аргументы в методе выбора кнопок?

    //Button creation

    -(void) viewDidLoad
    {
         UIButton *imageOverlayBtn = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];

     imageOverlayBtn.frame = CGRectMake(xOrigin, yOrigin, theSize.width, theSize.height);

            //Pass this string into selector method 
     NSString *passString = [feedArray objectForKey:@"URLString"];

     [imageOverlayBtn addTarget:self action:@selector(overlayBtnAction:) forControlEvents:UIControlEventTouchUpInside];

       }

    // Button Action
    -(void) overlayBtnAction : (NSString *) getString
    {
          NSLog(@"The get string is %@", getString)
    }

Так, как я могу передать строку в метод выбора? Пожалуйста, помогите мне.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 22 января 2011

Прежде всего ваш метод действия должен быть реализован с такой подписью:

-(void) overlayBtnAction : (id) sender
{
...
}

Где отправитель - указатель на UIButton (в общем случае на UIControl), который вызвал этот обработчик.

Ваша цель self, поэтому вы можете объявить переменную NSString, являющуюся членом этого класса.

Так что в viewDidLoad у вас будет:

  self.passString = [feedArray objectForKey:@"URLString"];

Ив обработчике просто используйте его значение:

-(void) overlayBtnAction : (id) sender
{
    NSString *localVar = self.passString;
}
1 голос
/ 22 января 2011

Если вам нужно, чтобы между такими методами сохранялась строка, я бы посоветовал поместить ее в заголовочный файл. Таким образом, вы можете установить его, когда вам нужно, и получить к нему доступ из любого места в реализации. Я не думаю, что передача аргумента в действие пользовательского интерфейса является хорошей практикой проектирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...