내 iPhone 앱은 탭 기반이지만 탭 바 컨트롤러보기를 완전히 전환하고 다른 모든 XIB 파일의보기로 창에있는 모든 것을 바꾼다. 응용 프로그램 델리게이트 (이것은 "수석"클래스이기 때문에)에서 수행되어야한다고 나는 추측 할 것이지만, 나는 거기에서 갈 수있는 올바른 방법을 모른다. 아무도 내가하려고하는 것을하는 법을 알고 있습니까?탭 막대 응용 프로그램에서 XIB를 변경하는 방법은 무엇입니까?
미리 감사드립니다.
내 iPhone 앱은 탭 기반이지만 탭 바 컨트롤러보기를 완전히 전환하고 다른 모든 XIB 파일의보기로 창에있는 모든 것을 바꾼다. 응용 프로그램 델리게이트 (이것은 "수석"클래스이기 때문에)에서 수행되어야한다고 나는 추측 할 것이지만, 나는 거기에서 갈 수있는 올바른 방법을 모른다. 아무도 내가하려고하는 것을하는 법을 알고 있습니까?탭 막대 응용 프로그램에서 XIB를 변경하는 방법은 무엇입니까?
미리 감사드립니다.
귀하의 탭보기 컨트롤러를 가질 수는 액션 메소드의 같은 -(IBAction)onChangeView
그 방법은 -(void)toggleScreen
같이 [[UIApplication sharedApplicaton] delegate]
의 메소드를 호출합니다. 앱 대리자 메서드에서 다음
-(IBAction)onChangeView:(id)sender
{
MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate toggleScreen];
}
은 같은 것을 할 :
-(void)toggleScreen
{
[[[window subviews] objectAtIndex:0] removeFromSuperview];
[window addSubview:otherView];
}
는하지만, 전환이 필요한 경우가 다를 수 있습니다.
앱 위임자에게 꼭 가지 않아도됩니다. 기존보기 및 컨트롤러를 쉽게 제거하고 새보기를 추가 할 수 있습니다. 그것은 당신이하는 일에 정말로 달려 있습니다. 예를 들어, 일시적으로 기존의 뷰 구조를 제쳐두고 완전히 다른 무언가로 이동하고 원하는 경우 원래 구성으로 돌아갈 수 있습니다 (사용자 경험은 확실하지 않습니다).
내 응용 프로그램에는 보통 루트보기 컨트롤러가 있거나 기본 창을 사용하여보기를 추가하고보기를 제거합니다. 일부보기는 다른보기를 자신에게 추가하거나 다른보기를 루트보기 또는 기본 창으로 전환합니다. 몇몇보기는 아래에 전망을 계시하기 위하여 닫는다. 옵션은 무제한이며 요구 사항 및 아키텍처에 따라 다릅니다.
고마워요! 닉, 그게 내가 필요한 코드 일 뿐이야. 누구나 쉽게 찾을 수있는 경우, 여기에 애니메이션을 추가하여보기를 전환하는 코드가 있습니다. 앱 위임의 메소드에 넣으세요 :
AnotherViewController *anotherViewController = [[AnotherViewController alloc] initWithNibName:@"AnotherView" bundle:nil];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.window cache:YES];
[[[window subviews] objectAtIndex:0] removeFromSuperview];
[window addSubview:[anotherViewController view]];
[UIView commitAnimations];