(Перед продолжительным обсуждением: похоже, что вы печатаете myButton
в одну строку 2 и eventButton
в строке 3. Убедитесь, что они совпадают!)
Вы правы, думая, что вы создаете новый экземпляр mainViewController
. Чтобы получить тот, который вам нужен, вам нужно будет либо передать ссылку на mainViewController
в новый контроллер представления при его создании, написав такой метод:
@synthesize mainViewController;
-(void) initWithMainVC:(MainViewController *)mainVC {
if ((self = [super init])) {
self.mainViewController = mainVC;
}
return self;
}
для переопределения init
, или, если у вас есть ссылка на mainViewController
в вашем делегате приложения, вы можете получить его, используя:
MainViewController *mainVC = [(YourAppDelegate *)[[UIApplication sharedApplication] delegate] mainViewController];
В любом случае вы захотите ознакомиться с объектно-ориентированным программированием и указателями в цели C. Когда вы вызываете alloc
, вы создаете новую копию этого класса. Все копии находятся в разных частях памяти, поэтому любой новый, который вы делаете (как в вашем коде выше), на самом деле является совершенно другим объектом, например, двумя Приусами или чем-то в этом роде.
Указатель похож на тег имени, который идентифицирует или указывает путь к этому блоку памяти. В приведенном выше примере кода init
мы прикрепляем новый тег имени к экземпляру mainViewController
с теми же параметрами. То же самое и со второй строкой - мы создаем новый указатель (видите звездочку?), Говорим, что он будет указывать на экземпляр MainViewController
, и добавляем этот тег имени или указатель на экземпляр.
(Второй вариант немного сложнее, поскольку вы извлекаете mainViewController
из объекта, называемого синглтоном, или объекта, к которому вы можете добраться из любой точки мира ... подробнее об этом и делегате приложения можно узнать на этот пост от Какао с Любовью.)
В любом случае, я нервничаю, рассказывая об этом материале в стеке! Проверьте Apple Objective C справочник для некоторых других основ. Пример кода на iOS Dev Center действительно, действительно хорош для ознакомления. Загрузите проект, который выглядит красиво, или, что еще лучше, просто создайте проект из шаблона XCode и попытайтесь выяснить, как он сшит вместе. Удачи!