Я новичок в iPhone и объективе c. Я потратил часы и часы и часы на чтение документов и пытался понять, как все работает. У меня есть RTFM или, по крайней мере, в этом процессе.Использование интерфейса Builder эффективно
Основная проблема заключается в том, что я хочу понять, как указать, куда передается событие, и единственный способ, которым я смог это сделать, - указать делегатов, но я уверен, что в IB легче и быстрее ,
Итак, пример. Допустим, у меня есть 20 разных видов и контроллеров и один MyAppDelegate. Я хочу, чтобы иметь возможность создавать все эти различные Xib-файлы в IB и добавлять все количество кнопок и текстовых полей и т. Д., А затем указывать, что все они производят какое-то событие в объекте MyAppDelegate. Для этого я добавил объект MyAppDelegate в каждый контроллер представления в виде списка IB. Затем я создал метод IBAction в MyAppDelegate в XCode и вернулся к IB и связал все события с объектом MyAppDelegate в каждом файле Xib.
Однако, когда я попытался запустить его, он просто разбился с неправильным исключением.
Я предполагаю, что каждый файл Xib помещает указатель объекта MyAppDelegate, который не имеет никакого отношения к возможному адресу MyAppDelegate, который будет фактически создан во время выполнения.
Так что мой вопрос ... как я могу это сделать? !!!
Если бы я сказал @property (неатомический, сохранить) IBOutlet MyAppDelegateClass * AppDelegate , а затем подклассы каждого из моего viewcontrollers из этой базы ViewController и затем добавляли различные методы IBAction в моем AppDelegate само то, конечно, есть какой-то способ подключения эти IBOutlets в построителе интерфейса вместо кода? До сих пор я сделал это программно, просто установив свойство appDelegate для себя при загрузке контроллеров представлений из MyAppDelegateClass, но я думаю, что строка [UIApplication ...] будет лучше. Но разве нет пути в IB? – twerdster
Делегат приложения - это конкретный экземпляр. Вы должны указать на этот конкретный экземпляр или не дойти до фактического делегата. Просто давая классу выход, не позволяет его подклассам указывать на конкретные экземпляры. Каждый из этих торговых точек должен ссылаться на конкретный экземпляр делегирования приложения, который объекты приложения используют в качестве своего делегата. – TechZen
Файлы Nib предназначены для модульной работы и имеют ограниченную область действия. По дизайну они не зависят от и не могут видеть все приложение или даже объект приложения. Таким образом, только актив, принадлежащий самому объекту приложения (обычно MainWindo.nib), может видеть активный делегат. – TechZen