2013-07-31 4 views
0

내 iPhone 앱에서 다른 홈보기 컨트롤러로 실험하고 싶습니다. 원래 컨트롤러에있는 모든 섹을 복사하거나 새 컨트롤러로 쉽게 이동할 수 있습니까? 원래의 segues는 UITableViewController에 있으므로 수동으로 실행됩니다. 보시다시피, 나는 꽤 많아서 다시 그걸 다시 그리기를 원하지 않습니다 ... 다시. 몇 가지 아이디어를 제공하는 코드와 diagram이 있습니다.모든 홈 ViewController Segues를 새 컨트롤러로 이동 하시겠습니까?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    BOOL isPhone = YES; 
    DLog(@"%s", __PRETTY_FUNCTION__); 
    id navController; 

    NSArray *sectionTitles = sectionValues[indexPath.section]; 
    NSString *title = sectionTitles[indexPath.row]; 

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { 
     navController = _parentController; 
    } else { 
     navController = self; 
     isPhone = NO; 
    } 
    if ([title isEqualToString:@"Study"]) { 
     DLog(@"\n\nWARNING: Need to invoke prepareForSegue"); 
//  [_parentController performSegueWithIdentifier:@"StudyListSegue" sender:self]; 
     [navController performSegueWithIdentifier:@"StudyListSegue" sender:self]; 

    } else if ([title isEqualToString:@"Quiz"]) { 

     _quizType = 1; 
     if (isPhone) _parentController.quizType = 1; 
     [navController performSegueWithIdentifier:@"QuizListSegue" sender:self]; 

    } else if ([title isEqualToString:@"Audio Quiz"]) { 

     _quizType = 2; 
     if (isPhone) _parentController.quizType = 1; 
     [navController performSegueWithIdentifier:@"QuizListSegue" sender:self]; 

    } else if ([title isEqualToString:@"Home"]) { 
     [navController performSegueWithIdentifier:@"HomeSegue" sender:self]; 

    } else if ([title isEqualToString:@"Flashcards"]) { 
     [navController performSegueWithIdentifier:@"FlashcardListSegue" sender:self]; 

    } else if ([title isEqualToString:@"Conjugator"]) { 
     [navController performSegueWithIdentifier:@"ConjugationListSegue" sender:self]; 

    } else if ([title isEqualToString:@"Dictionary"]) { 
     [navController performSegueWithIdentifier:@"DictionarySegue" sender:self]; 


    } else if ([title isEqualToString:@"Numero Practicas"]) { 
     [navController performSegueWithIdentifier:@"Numbers2Segue" sender:self]; 

    } else if ([title isEqualToString:@"Juego de Memoria"]) { 
     [navController performSegueWithIdentifier:@"ConcentrationListSegue" sender:self]; 

    } else if ([title isEqualToString:@"Sopa de Letras"]) { 
     [navController performSegueWithIdentifier:@"GameListSegue" sender:self]; 

    } else if ([title isEqualToString:@"Juego el Ahorcado"]) { 
     [navController performSegueWithIdentifier:@"HangmanListSegue" sender:self]; 

    } else if ([title isEqualToString:@"Scores/Retest"]) { 
     if (isPhone) { 

      [navController performSegueWithIdentifier:@"ScoreSegue" sender:self]; 

     } else { 

      [navController performSegueWithIdentifier:@"iPadScoreSegue" sender:self]; 

     } 

    } else if ([title isEqualToString:@"Missed Questions"]) { 
     [navController performSegueWithIdentifier:@"MissedQuestionSegue" sender:self]; 

    } else if ([title isEqualToString:@"Options"]) { 
     [navController performSegueWithIdentifier:@"OptionsSegue" sender:self]; 

    } else if ([title isEqualToString:@"Help"]) { 

     [navController performSegueWithIdentifier:@"HelpSegue" sender:self]; 

    } 

} 

답변

0

내가 발견 한 한 가지 해결책은 기존 컨트롤러를 단순히 스토리 보드에 복사하는 것입니다. 그런 다음 새 컨트롤러에서 클래스를 변경합니다. 모든 컨트롤러는 기존 컨트롤러를 복사 할 때 가져옵니다.

관련 문제