2012-07-23 1 views
0

Я разрабатывал экран, где я хочу загрузить контроллеры представлений на основе условия.ie в отношении условия, которое он должен загружать определенный класс контроллера класса из делегата приложения во время запуска приложения.Как загрузить класс контроллера вида из делегата приложения во время запуска приложения (т. Е. Из делегата приложения)

 if(condition success) 
{ 
//Load viewcontroller1 
} else 
{ 
//Load viewcontroller2 
} 

Как я могу добиться этого .Please помочь мне ..

+0

Возможный дубликат [Как запустить приложение с указанным UIViewController? а не с первым] (http://stackoverflow.com/questions/6898917/how-to-start-the-app-with-the-uiviewcontroller -специфично-не-во-первых) –

ответ

1

Просто откройте Xcode, создайте новый проект, сделать его Универсальный (IPad/iPhone), и вы увидите пример это. Он создает для вас два .xib-файла. Один для iPad и один для iPhone.

Затем приложение делегат делает это:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
     self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil]; 
    } else { 
     self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil]; 
    } 

В этом случае, он использует тот же ViewController класс (ViewController.h и .m) для обоих .xibs. Однако вы тоже можете это изменить. Просто перейдите в каждый .xib в графическом дизайнере Xcode (используется для создания интерфейса), выберите .xib, выберите Владелец файла, а на вкладке Inspector (свойства ... обычно справа) вы можете выбрать Custom Класс из выпадающего списка.

Итак, если вам нужен отдельный подкласс Objective-C UIViewController для каждого, вы можете это сделать. Не забудьте также изменить код выше, чтобы он соответствовал ([ViewController alloc]).

1

Вы можете видеть то же самое, что и Apple. Создайте универсальное приложение. В appDelegate вы можете найти

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { 
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil] autorelease]; 
} else { 
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil] autorelease]; 
} 

В зависимости от состояния они загружают разные контроллеры.

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

  • Нет связанных вопросов^_^