Вопрос

У меня возникла эта проблема, потому что я изначально сделал все в основной ниб, но затем после чтения узнал, что лучше использовать субвея.

У меня есть свои Ibactions в AppDelegate, и я успешно подключил и загрузил мои подзывы. Однако, когда я пытаюсь подключить мои кнопки в подзвах к ibactions в AppDelegate, Ibactions отображаются под «первым респондентом». Кажется, они подключаются нормально, но при запуске приложения они не вызывают ibactions (я подтвердил это некоторыми NSLogs, это не ошибка в коде в Ibactions). Что я делаю неправильно?

Спасибо!

Это было полезно?

Решение

AppDelegate следует использовать только для очень конкретных элементов, таких как реализация UIApplicationDelegate протокол (то есть методы, такие как applicationDidFinishLaunching) Или в некоторых случаях хранят глобальные переменные.

Вы должны сохранить ibactions и другие розетки в соответствующих файлах контроллера просмотра (т.е. если вы создали myviewcontroller.h и myviewcontroller.m, которые связаны с myviewcontroller.xib, где у вас есть несколько кнопок, изображений и т. Д.). Затем они могут быть подключены через перетаскивание контроля инспектора, который вы хотите (т. Е. TACHIONUPINSIDSIDE) к владельцу файла.

То, что вы должны читать, чтобы лучше понять контроллеры просмотра: http://developer.apple.com/iphone/Library/featureduredArticles/viewcontrollerpgforiphoneos/introduction/introduction.html.

Как правило, лучше всего создать уникальный контроллер представления для каждого представления, который вы представите пользователю. Например, если у меня был главный экран, а затем экран «о» или настройках, я бы сделал каждый из тех свой собственный контроллер просмотра. Это помогает организовать вещи лучше, чем использование одного взгляда с целым кучей субвезгов, которые вы скрываете / шоу, и также улучшат время загрузки и общей производительности.

Обновление для вашего второго вопроса в комментариях по доступу к делегату приложения:

Во-первых, вам нужно импортировать файл .h (т.е. #import "AppDelegate.h") Для выполнения приложений в какой файл контроллера просмотра .M Вы хотите использовать для доступа к любым переменным, массивам и т. Д. Вы сохранили в файлах делегирования приложений. Убедитесь, что вы синтезировать в зависимости от того, какие объекты вы создаете в файле The App Delegate's .h. В файле .m файл делегата приложения, чтобы созданы Getter и Setters (так что вы можете получить доступ к ним).

Затем в файле контроллера просмотра .m, в зависимости от этого метод, который вы используете:

-(void)someMethod { 
 // here we just create a shortcut to the app delegate called "theAppDelegate"
 YourAppDelegateFileNameHere *theAppDelegate = (YourAppDelegateFileNameHere *)[[UIApplication sharedApplication] delegate];

 // now you can use the dot notation if you wanna access a variable
 int SomeNewInteger = theAppDelegate.someIntegerYouHaveStored;

 // or some array you have stored
 return [theAppDelegate.someArrayYouCreated count]; 
 }

Надеюсь, это поможет!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top