Основываясь на журнале отладки, который вы дали, я нашел причину, выполнив поиск:
MainSettingClass
экземпляр, который вы выдвинули ранее, не может быть ни повторно загружен в массив на navigationController, ни представлен модально.Вам следует создать новый экземпляр MainSettingClass и представить его, как и второй фрагмент кода.
ЗДЕСЬ - это относительный вопрос, в котором упоминается Application tried to present modally an active controller
.:)
-(void)popToMainMenuAnimated:(BOOL)animated
{
UIViewController *element;
for(element in self.viewControllers) {
if([element isKindOfClass:[MainSettingClass class]]) {
self.modalTransitionStyle = UIModalTransitionStylePartialCurl;
[self presentModalViewController:element animated:YES];
break;
}
}
}
Но почему бы не load
Main Menu
вместо pop
?
-(void)loadMainMenuAnimated:(BOOL)animated
{
MainSettingClass * mainMenuViewController = [[[MainSettingClass alloc] init] autoreleased];
[mainMenuViewController.view setFrame:CGRectMake(0.0f, 0.0f, 320.0f, 480.0f)];
// ...
self.modalTransitionStyle = UIModalTransitionStylePartialCurl;
[self presentModalViewController:mainMenuViewController animated:YES];
}
И в показанном вами коде есть некоторые ошибки:
self.modalTransitionStyle= UIModalTransitionStylePartialCurl;
[self popToViewController:element animated:YES];
self.modalTransitionStyle= UIModalTransitionStylePartialCurl;
если вы установите этот параметр, вам нужно использовать
[self presentModalViewController:yourViewController animated:YES];
, а не
[self popToViewController:element animated:YES];