2011-11-10 2 views
0

하위보기를 추가하고 싶지 않고 "self.view"를 다른보기 (예 : 경고보기)로 변경 한 다음 사용자가 경고를 표시하지 않고 다시 전환하고 싶습니다. 내가 원래의보기로 다시 전환하려고 할 때 나는 이해할 수없는 이유로 빈 스크린을 얻는다. 여기 UIViewController 및 UITableViewController, 어떻게 다시 self.view 변경하려면?

당신이 당신의보기를 변경하려면 내가 현재 내 UITableViewControllers

//Show warning view controller 
self.warningViewControler = [[[WarningViewController alloc] init] autorelease]; 
self.view = self.warningViewController.view; 


//Then later 
self.view = self.tableView; //<< Dosnt work 
+0

"Dosnt work"는 무엇을 의미합니까? 그것은 당신에게 오류를 주거나 기대 한 결과를 산출하지 못하는가? 또한,이 방법 그늘의 종류가 아닌가요? selfView를 재 할당 할 때 tableView가 해제되고 할당 해제됩니까? 경고를 표시하는 경우 UIAlertView를 사용하는 것이 좋을까요? –

+0

@pixelchild가 현재보기 컨트롤러를 통해 WarningViewController를 모달로 표시하지 않는 이유가 있습니까? 이렇게하는 것이 간단하고 일관된 방법 일 것입니다. –

+2

당신은 잘못하고 있습니다, 이것은 iOS view 아키텍처가 어떻게 작동하는지에 관한 것이 아니며, 당신은 오름차순의 전투에 직면하게 될 것입니다. 하위 뷰로 포함하거나 새 뷰 * 및 * 새 뷰 컨트롤러를 만든 다음 사용자에게 표시해야합니다. –

답변

0

중 하나가, 원래 뷰가 정의 된 경우/엑스 코드에 링크, 당신은 자신을 변경하기 전에 잘 보관해야 할 일이다. 다른보기로보기. 그렇지 않은 경우 원래보기가 해제되고 다시 사용하면 나쁜 일이 발생할 수 있습니다.

경고 :

self.warningViewControler = [[[WarningViewController alloc] init] autorelease]; 
self.view = self.warningViewController.view 

나쁜 나쁜 호출입니다. 왜냐하면 당신은 컨트롤러를 자동으로 릴리즈하지만 그 뷰를 사용하기 때문입니다. 따라서 일정 시간이 지나면 출시 된 컨트롤러로 유지되는보기를 얻게됩니다. 더 이상 뷰가 필요하지 않으면 컨트롤러를 보관하고 직접 풀어 놓으십시오.

+0

고마워, 나는 정말 나쁜 습관이라고 느꼈다. 모달보기를 사용하지 않은 이유는 탐색 모음과 탭 표시 줄을 계속 보려했기 때문입니다. 하위보기로 삽입하지 마십시오. – jennas

0

는 여기에 내가 당신이하려는 생각을 할 수있는 더 좋은 방법 : 도움이

[self dismissModalViewControllerAnimated:YES]; 

// or again if this is iOS5.. 

[self dismissModalViewControllerAnimated:YES completion:nil]; 

희망 :

WarningViewController *warningViewController = [[WarningViewController alloc] initWithNibName:@"theRightNiborNil" bundle:nil]; 

[self presentModalViewController:warningViewController animated:YES]; 

// or if you don't need to support iOS4 any more: 

[self presentViewController:warningViewController animated:YES completion:nil] 

// and if you aren't using ARC yet, then [warningViewController release]; 

는 그런 다음 WarningViewController에 당신은 전화 어떤 행동을 할 수 있습니다.

관련 문제