Загрузка UITabBarController из отдельного XIB в приложение Windows на iPhone - PullRequest
0 голосов
/ 30 декабря 2010

Я работаю над созданием iPhone-версии приложения для Android, которое я написал (поэтому, пожалуйста, потерпите меня). Приложение имеет основной вид, который в основном отображает веб-вид и некоторые другие элементы управления, которые контролируют веб-вид. У меня уже есть эта часть приложения, работающая поверх UIWindow.

Другая часть приложения - это страница профиля, которая позволяет пользователю вводить некоторую информацию профиля в форму. Из-за огромного количества опций я собрал интерфейс вещи в отдельный XIB, используя UITabBarController, чтобы объединить все вместе. У меня уже есть класс делегата для этой части приложения, так что я могу работать с полями формы в представлениях.

Когда приложение запускается, оно должно отображать представление «профиль» для пользователя при первом запуске, а затем отображать представление профиля, когда пользователь выбирает «профиль» в своем приложении.

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу найти хороший пример (или хорошее понимание), как заставить приложение загрузить представление и его делегат. Если бы это было под Android, я бы подкласс Activity и загрузить соответствующий интерфейсный файл.

Пока у меня есть контроллер вида:

@implementation customizeViewController  
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {  
        if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {  
            // Custom initialization  
        }  
        return self;  
    }  
    - (void)dealloc {  
        [super dealloc];  
    }  
@end

И внутри заголовка делегата приложения у меня есть эта настройка для удержания моего представления профиля:

UIView *CustomizeWindow;

В пределах didFinishLaunchingWithOptions У меня есть следующее:

CustomizeWindow = [[customizeViewController alloc] initWithNibName:@"CustomizeWindow" bundle:[NSBundle mainBundle]];  
[window makeKeyAndVisible];

... где CustomizeWindow - имя файла файла представления 'profile'.

Я пробовал несколько разных способов отображения этого, таких как добавление его в качестве вспомогательного представления в окно и presentModalViewController безуспешно. Я подозреваю, что в этой головоломке есть часть, которую мне не хватает, поэтому любая помощь будет признательна.

1 Ответ

1 голос
/ 14 января 2011

Из всего, что я мог прочитать, нет способа действительно сделать это.Решением было выбросить все и упростить.В этом случае пользовательский контроллер представления использует UIScrollView для хранения других представлений, а затем загружает другие файлы xib программным способом.

Примерно так:
NSArray *pages = [[NSBundle mainBundle] loadNibNamed:@"CustomizePage1" owner:self options:nil];<br> UIView *page1 = [pages objectAtIndex:0];<br> [page1 setBounds:CGRectMake(0, -20, page1.frame.size.width, page1.frame.size.height)];<br> [self.scroller addSubview:page1];

И выполните вышедля каждого xib, который вы хотите загрузить в представление прокрутки.

...