2013-09-18 3 views
2

Это мой код, чтобы перейти к другому перу,Невозможно перейти к СИБУ iPhone SDK

MaintenanceViewController *maintenance = [[MaintenanceViewController alloc] initWithNibName:@"MaintenanceViewController" bundle:nil]; 
    CGRect theFrame = maintenance.view.frame; 
    theFrame.origin = CGPointMake(self.view.frame.size.width, 0); 
    maintenance.view.frame = theFrame; 
    theFrame.origin = CGPointMake(0,0); 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.6f]; 
    maintenance.view.frame = theFrame; 
    [UIView commitAnimations]; 
    [self.view addSubview:maintenance.view]; 

к сведению, что я не с помощью навигационного контроллера, а также я не хочу, как мое приложение не основано на навигации ,

Когда этот метод вызывается на второй строке, то есть при получении кадра (в рамке) приложение получило ошибку с ошибкой Exec_bad_access code=2 address = 0xbf7ffffc.

Значок не может быть загружен.

ответ

2

Первое, что необходимо; ваше приложение рушится, потому что вы звоните в переменную nill: обслуживание. Вы должны убедиться, что загрузка файла nib происходит правильно.

Есть разные причины, по которым это не происходит; проверьте:

  1. Вы используете правильное имя для XIb и файл существует.
  2. Вы правильно определили «владелец файла» файла xib: ваш контроллер просмотра.

Вторая вещь; я думаю, что вы хотите представить modally ваш второй контроллер просмотра, который может быть выполнен путем вызова контроллера представления представления с помощью метода presentViewController:animated:completion:.

+0

Я правильно подключился, хотя я столкнулся с проблемой. И, пожалуйста, объясните в коде, что вы хотите сказать. Спасибо –

+0

@ParasGorasiya сделал u отлаживает и проверяет, что стоимость обслуживания не нуль? – tiguero

+0

Исходный код от Wezly правильный ... но прежде, чем еще раз убедиться, что обслуживание не ноль – tiguero

2

Для перехода к другому ViewController вы должны использовать presentViewController метод, как это:

MaintenanceViewController *maintenance = [[MaintenanceViewController alloc] initWithNibName:@"MaintenanceViewController" bundle:nil]; 
[maintenance setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 
[self presentViewController:maintenance 
        animated:YES 
       completion:^(void){ 
       } 
]; 

Кроме того, в зависимости от того, как вы настроите ваш MaintenanceViewController вы не можете использовать initWithNibName

MaintenanceViewController *maintenance = [[MaintenanceViewController alloc] init]; 
+0

спасибо, но ваше решение не смогло помочь мне, проблема все еще там. –