2012-06-28 2 views
0

У меня вопрос с новичком об интеграции двух приложений iOS. Я создал приложение в iOS 5 (мое первое приложение, поэтому я не знаю каких-либо знаний о iOS 4, кроме факта, что были файлы xibs вместо раскадровки, а также ARC не был включен). Теперь я должен включить в приложение iOS 5 одно старое автономное приложение (построенное для iOS 4 с xibs и не ARC). Допустим, что в моем приложении в главном меню появится новая кнопка, открывающая главное меню другого приложения.интеграция проекта iOS4 в проект iOS5

Итак, я провел некоторое исследование и выяснил, как отключить ARC флагом fno-objc-arc. Хорошо, теперь я импортировал все файлы второго приложения в мое приложение, и все классы имеют установленный флаг. Я все еще могу запустить приложение без проблем.

Теперь я понятия не имею, как позволить моей новой кнопке открыть mainViewController старого приложения - это приложение имеет MainWindow.xib (содержит окно и один контроллер навигации). Этот MainWindow установлен в качестве основного интерфейса в старом проекте. В файле appMainDelegate также есть некоторый вызов init. Где я могу позвонить им в своем приложении?

Может ли кто-нибудь сказать мне, что нужно сделать. У меня есть идея, что я добавлю только один новый UIViewController в свою раскадровку. Это будет отправной точкой для старого приложения, и все будет работать так, как раньше. Или мне нужно будет создать больше контроллеров (для каждого xib) в моей раскадровке? Здесь я не знаю, что делать. Любая помощь много appriciated. спасибо

ответ

0

Попробуйте сделать что-то вроде следующего, ничего подобного или simmular должно работать:

В методе кнопки (один вы называете вашу новую кнопкой) иметь его выполнить следующий код:

OldAppMainViewController *controller = [[OldAppMainViewController alloc] init]; 
//Here you can assign vallues to any properties that you might want to 
[self.navigationController pushViewController:controller animated:YES]; 

Этот старый диспетчер представлений приложений должен иметь инициализацию с нулевой функцией, чтобы она работала. Если это не работает, попробуйте что-то вдоль линий:

OldAppMainViewController *controller = [[OldAppMainViewController alloc] initWithNibName:@"OldAppMainViewController" bundle:nil]; 

Если имя СИБ имя файла .xib без расширения.

Также убедитесь, что все соединения в построителе интерфейса настроены правильно

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