Цель C - проблема с передачей имени объекта через параметр метода при инициализации объекта - PullRequest
0 голосов
/ 10 августа 2011

Я очень плохо знаком с Objective C и пытаюсь создать метод для инициализации объекта (точнее объекта кнопки) только с одной строкой кода ... Объявление моего метода ...

- (void)buttonDeclaration: (UIButton *)mButton :(int)xloc :(int)yloc :(int)bWidth :(int)bHeight 
                         : (NSString *)sImage :(UIViewController *)mView :(SEL)mSelector
{
  mButton = [UIButton buttonWithType:UIButtonTypeCustom];
  [self buttonSetxy:mButton :xloc :yloc :bWidth :bHeight];
  [mButton setBackgroundImage:[UIImage imageNamed:sImage] forState:UIControlStateNormal];

  [mView.view addSubview:mButton];
}

Мой вызов метода ...

[...buttonDeclaration:newButton :40 :65 :80 :65...]

, но когда я пытаюсь добавить

[newButton setHidden:FALSE]; 

после моего вызова метода, он ничего не делает.Я не уверен, каков правильный термин, но имя объекта должно быть newButton, а не mButton.Имеет ли это смысл и как мне это сделать?

1 Ответ

0 голосов
/ 10 августа 2011

На самом деле методы, объявленные в цели c, отличаются.

Когда вы объявляете метод с несколькими аргументами, он должен выглядеть следующим образом.

  • (void) myMethod: (int) firstNum secondArgument: (int) secondNum

поэтому ваш метод будет объявлен как

  • (void) buttonDeclaration: (UIButton *) mButton xPosition: (int) xloc yPosition: (int) yloc Ширина: (int) bWidth height: (int) bHeight imageName: (NSString *) sImage myView: (UIViewController *) Селектор mView: (SEL) mSelector

Теперь вы будете вызывать этот метод по

[self buttonDeclaration: myBtn xPosition: 5 yPosition: 10 width: 5 height: 10 и так далее .......]

и если вы хотите скрыть свою кнопку, просто напишите

myBtn.hidden = YES;

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