2011-02-18 4 views
0

시나리오는 switchViewController가 기본 창에 추가 된보기입니다. 그래서 switchViewController는 기본 뷰입니다. 그래서 뷰 ​​B로 가고 싶다면 뷰 B의 addsubview를 switchViewController의 뷰를 제거 할 필요가 없습니까? 문제는 view B에서 switchViewController의 뷰로 돌아간 후에 viewWillAppear 메서드가 더 이상 호출되지 않는 것입니다.viewWill 한 번만 호출됩니다.

왜 그렇습니까?

+0

는 스위치를 제거하지 않는 당신의 ViewB를 호출 탐색 컨트롤러에서보기를 내장 고려가 이미 등장으로 즉, Y viewWillAppear가 호출되는 아니에요 볼 수 있습니다. –

답변

1

그것은 결코 사라지지 않았기 때문입니다. 여러분은 그저 앞에 다른 것을 놓기 만했습니다. 한 화면에서 다른 화면으로 이동하여 뒤로 이동하려는 경우 별도의보기 컨트롤러 여야하며 UINavigationController 및 그 방법은 pushViewController:isAnimated:이어야합니다.

2

viewWillAppear: 뷰가 뷰 계층에서 제거되거나 뷰 계층에 추가 될 때 자동으로 호출되지 않습니다. 적절한 시점에 View Controller를 호출하는 것은 View Controller의 책임입니다. 기본 제공 View Controller 클래스는 새 View Controller를 표시하거나 누를 때마다이 작업을 수행합니다. 앱에서이 메커니즘을 사용하지 않으므로 직접 호출하지 않는 한 메소드가 호출되지 않습니다.

0

다른 뷰로 이동하지 않고 첫 번째보기를 수정하는 것이 좋지 않습니다.

당신은 ... 다음

[navigationController pushViewController:viewB animated:YES];