2015-03-12 6 views
0

Я столкнулся некоторые вопросы WRT XCode 6.1.1, вот мой кодself.window setRootViewController не работает на Xcode 6.1.1

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [[DBManager getSharedInstance] initWithdbFile]; 
    [[DBManager getSharedInstance] createtableScripts]; 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    containerViewController =[[CprViewController alloc] init]; 
    [containerViewController Setup]; 
    [self.window setRootViewController:containerViewController.containerViewController]; 
    self.window.backgroundColor = [UIColor whiteColor]; 
    [self.window makeKeyAndVisible]; 
    [self pickModel]; 
    return YES; 
} 

Теперь приложение работает отлично в старых XCode т.е. 5.1.1, но пока имитируя XCode 6.1.1, приложение запускает образ запуска, и нет ответа, т. е. выполнение заканчивается на [self.window setRootViewController: containerViewController.containerViewController]; и он не продолжает выполнять дальнейшие строки кода. Он не показывает ошибок в консоли. . (Приложение однако работает на устройстве, имеющем последней ОС (т.е. IOS 8) Пожалуйста, помогите

* Edited Post. - здесь начинается

Спасибо за помощь Вот проблема, что я столкнулся, Это. в моем AppDelegate файле

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [[DBManager getSharedInstance] initWithdbFile]; 
    [[DBManager getSharedInstance] createtableScripts]; 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; //Now Removed!!! 
    containerViewController =[[CprViewController alloc] init]; 
    [containerViewController Setup]; 
    self.window.rootViewController = containerViewController.containerViewController; 
    self.window.backgroundColor = [UIColor whiteColor];//Now Removed!!! 
    [self.window makeKeyAndVisible];//Now Removed!!! 
    [self pickModel]; 
    return YES; 
} 

Теперь я переставляю три линии так же, как вы предложили, и теперь продолжается выполнение

Теперь это мой код [Setup] containerViewController;

-(void)Setup 
{ 
    SideMenuViewController *leftMenuViewController = [SideMenuViewController homeBookViewController]; 
    CprStartPageViewController *accounts=[[CprStartPageViewController alloc] initWithNibName:@"CprStartPageViewController" bundle:nil]; 
    self.navController= [[CprNavigationViewController alloc] 
         initWithRootViewController:accounts]; 
    self.containerViewController = [MFSideMenuContainerViewController             containerWithCenterViewController:self.navController leftMenuViewController:leftMenuViewController 
     rightMenuViewController:nil]; 
    [leftMenuViewController.passBookTable selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:YES scrollPosition:0]; 
} 

Приведенный выше код прикрепляет боковое меню (здесь я прикрепляю меню слева) - Ошибка в этом коде, и выполнение продолжается. Теперь CprLoginViewController мой parentViewController т.е. parentViewController на 4 экрана, что я упомянул, и это мой initWithNibName для 4 экранов

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil parentViewController:(CprLoginViewController*) inVC 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil parentViewController:inVC]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

и ошибка в настоящее время происходит в CprLoginViewController, где я использую процедуру, которая называется showNextPage к перемещаться между этими 4 страниц

-(void) showNextPage 
{ 
    if (currentPage > numberPages) 
     return; 
    CprLoginSubViewController *controller; 
     switch(currentPage) 
     { 
      case 0: 
       controller = [[Corppersondtl alloc] initWithNibName:@"Corppersondtl" bundle:nil parentViewController:self]; 
       break; 
      case 1: 
       controller = [[CprLoginSub1ViewController alloc] initWithNibName:@"CprLoginSub1ViewController" bundle:nil parentViewController:self]; 
       break; 
      case 2: 
       controller = [[CprLoginSub2ViewController alloc] initWithNibName:@"CprLoginSub2ViewController" bundle:nil parentViewController:self]; 
       break; 
      case 3: 
       controller = [[CprLoginSub3ViewController alloc] initWithNibName:@"CprLoginSub3ViewController" bundle:nil parentViewController:self]; 
       break; 
      case 4: 
       controller = [[CprLoginSub4ViewController alloc] initWithNibName:@"CprLoginSub4ViewController" bundle:nil parentViewController:self]; 
      default: 
       break; 
     } 
    CGRect rBounds; 
    // add the required controller's view to scroll view 
    if (controller.view.superview == nil) 
    { 
     CGRect frame = self.scrollView.frame; 
     frame.origin.x = CGRectGetWidth(frame) * (currentPage); 
     frame.origin.y = 0; 
     controller.view.frame = frame; 
     [self addChildViewController:controller]; 
     [self.scrollView addSubview:controller.view]; 
     [controller didMoveToParentViewController:self]; 
     // just scroll to appropriate page 
     rBounds = self.scrollView.bounds; 
     rBounds.origin.x = CGRectGetWidth(rBounds) * currentPage; 
     [self.scrollView scrollRectToVisible:rBounds animated:YES]; 
    } 
    NSLog(@"scrollView is %lf", self.scrollView.frame.origin.y); 
    viewOriginalbounds = rBounds; //self.scrollView.frame; 
    currentPage++; 
} 

в приведенном выше коде я прилагаю Scrollview для прокрутки экрана вверх, когда появляется клавиатура для текстовых входов. Теперь строка if (controller.view.superview == nil) выбрасывает ошибку exc_bad_access.

ответ

0

Просто удалите, что строки кода

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
self.window.backgroundColor = [UIColor whiteColor]; 
[self.window makeKeyAndVisible]; 
+0

Любое объяснение? –

+0

@MatthiasBauch нет необходимости создавать окно, система уже обрабатывает это сам – Azat

+0

@ Азат спасибо, сэр, что сработало, но теперь я столкнулся с другой проблемой, далее добавляю прокрутку (извинения за неправильное форматирование кода) if (controller.view.superview == nil) теперь это вызывает ошибку EXC_BAD_ACCESS. контроллер - UIViewController, и я загружаю свои контроллеры view в переменную контроллера (у меня есть 4 экрана, для которых требуется просмотр прокрутки) – GMAN

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