Я реализовал UINavigationController в своем приложении iphone в качестве основного навигационного интерфейса.Правильное использование UINavigationController
Когда мне нужно добавить новый XIB в мой стек UINavigationController я должен написать новый метод, как это (например, для ContactsView.xib):
- (void) switchToContactsView
{
// lazy load
if (self.contactsViewController == nil)
{
ContactsViewController *contactsController = [[ContactsViewController alloc]
initWithNibName:@"ContactsView" bundle:nil];
self.contactsViewController = contactsController;
[contactsController release];
}
[navigationController pushViewController:contactsViewController animated:YES];
}
Проблема заключается в том, у меня есть много и много. xib в моем приложении сейчас, и для каждого нового экрана мне нужно скопировать и вставить тот же код, просто изменив имя имени метода и класса в нем.
Есть ли еще более эффективный способ сделать это? Например, возможно создать какой-то один метод, который принимает параметры (имя подкласса xib и uiviewcontroller), поэтому я могу просто вызвать его с этими параметрами для загрузки нового xib и переключения на него. Проблема в том, что я не знаю, как передать имя класса методу (например, класс ContactsViewController в приведенном выше примере). Любая помощь?
спасибо, NSClassFromString - это то, что мне нужно – Mike