Установить объект в другом классе? - PullRequest
0 голосов
/ 27 июня 2011

У меня есть один класс, "DogViewController", где я объявляю свойство и синтезирую его:

@property (nonatomic, assign) NSInteger myInt;

@synthesize myInt;

У меня есть другой класс, "CatViewController", в котором я хочу установить переменную myInt, поэтомувот что я сделал:

@property (nonatomic, retain) DogViewController *myDogViewController;

@synthesize myDogViewController;

myDogViewController.myInt = 5;

Затем я хочу получить доступ к myInt из класса DogViewController, что я делаю следующим образом:

someVar = self.myInt;

someVar должно быть == 5 после этой команды.

Есть ли причина, по которой это не сработает?

Ответы [ 3 ]

1 голос
/ 27 июня 2011

Вы должны сначала создать экземпляр DogViewController.Так в CatViewController:

DogViewController *dogViewController = [[DogViewController alloc] initWithNibName@"DogViewController" bundle:nil];
dogViewController.myInt = 5;
// If you are using a navigation controller push DogViewController like this: 
[self.navigationController pushViewController:dogViewController animated:YES];
[dogViewController release];

Если вы не используете контроллер навигации, просто отобразите это представление так, как вы хотите

0 голосов
/ 27 июня 2011

Попробуйте не использовать retain с базовым типом данных, вместо этого используйте assign.

@property (nonatomic, assign) NSInteger myInt;
0 голосов
/ 27 июня 2011

Я думаю, что вы не получите значение 5. Поскольку оно будет сброшено.

Вы можете сделать это, как показано ниже.

внутри вашего "CatViewController", создайте один метод, такой как "setParent"."

принимает переменную в файле .h:

id parent;

функция в файле .m:

-(void)setParent:(id)pidParent{
parent = pidParent;
}

import" DogViewController.h"в файле CatViewController.m.

Когда вы нажимаете на DogViewController, он также вызывает его метод setParent.

Как [objDogViewController setParent: self];

, тогда вы можете установитьзначение с помощью переменной "parent".

Cheers.

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