2011-06-11 8 views
1

나는 UITableViewController 있습니다. 셀을 선택하면 UIViewController에서 init을 호출합니다. UIViewController는 프로그래밍 방식으로 여러 뷰를 만들고이를 화면에 추가합니다. 여기있는 모든 것이 잘 작동합니다."다시 시작"단추에 대한 프로그래밍 방식으로 다시로드 UIViewController

사용자가 앱과 상호 작용할 때보기가 이동되거나 삭제됩니다. 사용자가 "처음부터 다시 시작"할 수있는 버튼을 갖고 싶습니다. 그리고 UIViewController가 초기화되어 화면에 새 것처럼 그려집니다. 기본적으로 사용자가 UITableViewController에 "돌아가서"같은 항목을 다시 클릭했을 때와 동일한 동작이 필요합니다.

버튼을 만들어 모든 것을 연결할 수 있습니다. UIViewController를 해제하고 다시 초기화하는 방법을 알아야합니다.

어떻게하면됩니까?

답변

2

UI보기UIMyViewController 컨트롤러로 만듭니다. 및 탐색 스택에서보기 컨트롤러를 밀어 아래 코드를 사용하십시오.

-(void) buttonClcked:(id) sender 
{ 
    //Create for pushing another view controller in navigation stack. 
    UIMyViewController *myViewController = [[UIMyViewController alloc] init]; 
    //to push view controller in navigation stack. 
    [self.navigationController pushViewController:myViewController animated:YES]; 

    // you could release it because now it's retained by your UINavigationController 

    [myViewController release]; 
    myViewController = nil; 
} 
+0

당신은 그것을 가까이 치고 당신의 답은 나를 오른쪽으로 이끌었습니다. 바로 여기에 있습니다 : [Pop and View a View] (http://stackoverflow.com/questions/410471/how-can-i-pop-a-view uinavigationcontroller-and-replace-it-with-another-in)을 사용합니다. – Trevor

0

글쎄, 날 것으로 보인다, 당신은 두 가지 선택이있다 :

  1. 당신은 (부모 대리자 호출을 통해)에있는 UITableViewController를 종료하고 그것을 파괴하고 다시 시작 할 수 있습니다. (나)
  2. 당신은 별도의 루틴 (안 NIB 또는에는 loadView 또는 viewDidLoad에 또는 ViewDidAppear로보기 건물 코드를 삽입 한 다음 self.view의 모든 서브 뷰를 해제하고 다시보기 빌더를 호출 할 수 있습니다.
관련 문제