2013-02-25 2 views
0

В моем первом классе (Secen1ViewController.h) У меня есть свойство:Невозможно установить свойство в другом классе ios?

@property (nonatomic) BOOL myBoolean; 

В моем втором классе (Secen2ViewController.m) я импортировал Secen1ViewController.h и объявил собственность:

@property (strong) Secen1ViewController *parent; 

I также initalized недвижимости в ViewDidLoad:

_parent = [[Secen1ViewController alloc] init]; 

, а затем при нажатии кнопки я установить свойство:

self.parent.myBoolean=YES; 

Ошибки не отображаются, но myBoolean из Scene1 не установлен в yes.

+0

Обычная причина для этой жалобы заключается в том, что вы ссылаетесь на две разные копии вашего объекта. Каждая операция 'alloc' создает DIFFERENT-объект, и вы не можете установить значение в одном и ожидать, чтобы прочитать его в другом. (Извините, если это не ваша проблема, но это удивительно распространено.) –

ответ

0

Сначала добавьте @class Secen1ViewController (.h) и #import Secen1ViewController in (.m)

установить myBoolean свойство

@property (assign,nonatomic) BOOL myBoolean; 

и @synthesize it in (.m) и использовать его в вас Secen1ViewController

self.parent = [[Secen1ViewController alloc] init]; 
self.parent.myBoolean = YES; 
+0

CalculatorViewController был опечаткой, но не в моем коде. Теперь я редактировал вопрос. Я попытался добавить @class Secen1ViewController, и у меня уже есть импорт, но эффекта нет. Я не знаю, является ли это актуальным, но эти классы уже связаны с Segue. –

+0

как насчет _parent.myBoolean = YES ;? И как вы знаете, что это да или нет? с NSLog? Пожалуйста, подробнее. –

+0

Я попробовал, но ничего не изменилось. И да NSLog говорит, что Boolean установлен на NO. NSLog (_myBoolean? @ «Да»: @ «Нет»); –

0

ли вы синтезировать вашу логическую переменную? Возможно, вы не объявили

@synthesize myBoolean = _myBoolean; 

в вашем файле реализации.

+0

Я тоже пытался это сделать, хотя в ios6 нет необходимости синтезировать, если я не использую пользовательский getter и setter. –

0

Попробуйте заменить этот код:

_parent = [[Secen1ViewController alloc] init];  

с этим кодом:

self.parent = [[Secen1ViewController alloc] init];  

И убедитесь, что вы синтезировать все свойства.

+0

попробовал, не работает, к сожалению –

+0

Разве что Secen1ViewController наследуется от UIViewController, не так ли? – ppalancica

+0

Да, он наследует. –

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