내 앱은 탭 막대 컨트롤러가 RootViewController
으로 설정되어 있으며 각 탭에는 NavigationController
이 있습니다. 특정 작업이 수행 될 때 앱이 ViewController
을 화면에 밀어 넣기를 원합니다. 이 흐름은 앱이 시작되거나 백그라운드에서 열리면 저장된 NSDate를 확인하고 현재 날짜와 비교합니다. 올바른 조건이 충족되면 UIAlertView
을 표시합니다. "푸시"버튼이 선택되면 코드를 실행하여 새 뷰를 푸시합니다. 앱이 백그라운드에서 사용되는 경우 어떤 탭이 열려 있는지 보장 할 수 없기 때문에 이것이 AppDelegate
에서 실행되어야하는 이유입니다. 모든 탭이 NavigationController
을 포함하기 때문에, 나는 내가 AppDelegate에에서이 작업을 실행할 수 있다고 생각 :푸시보기 컨트롤러 AppDelegate 및 탭 모음
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (alertView.tag == 100) {
if (buttonIndex == 0) {
//Cancel
NSLog(@"Cancel");
}
if (buttonIndex == 1) {
NSLog(@"OK");
[self.tabBarController.selectedViewController pushViewController:self.newView animated:YES];
}
}
}
내가 UIViewController may not respond to -pushViewController:animated
을 말한다 경고 메시지가 표시됩니다. 내가 뭘 할 수 있을지에 대한 어떤 제안이 있니?
전체 경고와 약간의 코드를 게시 할 수 있습니까? – rishi
@rishi 편집 된 질문보기 – user717452
당신이해야 할 일은 - [self.tabBarController.selectedViewController.navigationController pushViewController : self.newView animated : YES]; – rishi