2017-12-14 2 views
0

두 개의 View Controller가있는 VisualStudio Xamarin (이 아닌 Xamarin.Forms)에서 앱을 만듭니다. 첫 번째보기 컨트롤러는 항목 목록이며 두 번째 항목에는 세부 정보가 들어 있습니다. 목록에서 사용자 탭 항목, 두 번째보기 코드Xamarin.IOS에서 이전 ViewController로 돌아가는 방법

DetailViewController detailController = this.Storyboard.InstantiateViewController("DetailViewController") as DetailViewController; 
detailController._idx = idx; 
this.NavigationController.PushViewController(detailController, true); 

열립니다하지만 프로그래밍 다시 처음의 ViewController로 이동하는 방법을 알고하지 않는 경우 - 예를 들어 버튼을 DetailViewController 에 내가 사용하려고 "위로"가 이 코드 :

backButton.TouchUpInside += (s,e) => { 
    this.NavigationController.DismissViewController(true, null) 
}; 

그러나 결과는 없습니다. 아무도 도와 줄 수 있습니까? 내가 동일하거나 목록과 개방의 새로운 DetailViewController에서 다른 항목을 선택하려고 할 때

backButton.TouchUpInside += (s,e) => { 
    this.NavigationController.DismissViewController(true, async() => { await DismissViewControllerAsync(true); }); 
    ListViewController listController = this.Storyboard.InstantiateViewController("ListViewController ") as ListViewController; 
    this.NavigationController.PresentViewController(listController, true, null); 
} 

"위로"에 대한이 작동하지만, 그것을 던져 :

내가 코드를 변경

업데이트 예외 : (

this.NavigationController.PushViewController(detailController, true); 

에 "System.NullReferenceException 개체 참조가 개체의 인스턴스로 설정되지 않습니다"세부 정보 - I RU n 응용 프로그램, ListViewController가 열리 며, Item1을 선택하고 DetailViewController가 열리 며 BackButton을 탭하고 ListViewController가 열립니다. 예외가 발생합니다.

+0

를 참조하십시오 지금 당신은 당신의 ViewController를 취소하고 당신은 다음의 ViewController로 이동 - 문제 :

코드를 수정 당신은 멍청이를 탐색 할 것이 없으며 당신은 null 예외를 얻습니다. –

답변

2

Push,PopPresent,Dismiss이 섞여 있습니다.

내비게이션 안에 viewcontroller를 삽입 할 때 push 및 pop을 사용하여 스택을 제어해야합니다.

backButton.TouchUpInside += (s,e) => { 
    this.NavigationController.PopViewController(true); 
} 

당신은 당신의 코드를 업데이트

Presenting a View Controller

UINavigationController

+0

고맙습니다. 하지만 PopViewController()는 ViewController를 파기합니까 아니면 이전 ViewController로 돌아온 후에 수동으로해야합니까? –

+0

팝업이 완료되면 파기됩니다. –

0

자동으로 "뒤로"버틴이 필요한 경우 탐색을 시작해야합니다 컨트롤러 및

이 링크에서 자세한 내용을 참조하십시오 ...의 ViewController를 열고 거기에서 : https://developer.xamarin.com/guides/ios/getting_started/hello,_iOS_multiscreen/hello,_iOS_multiscreen_quickstart/

그렇지 않으면 당신이 butten을해야하고 단순히 이전과 samee 방법을 사용!

이해가 안되면 물어보십시오!

+0

추천 한 게시물에 돌아 가기 기능에 대한 설명이 없습니다. 새로운 ViewController로만 이동하십시오 –

+0

링크를 확인하고 "뒤로"를 검색하면 얻을 수 있습니다. 네비게이션 컨트롤러와 뷰 컨트롤러 사이에 Seque가 있으면 한 컨트롤러에서 다른 컨트롤러로 이동할 때 "backButten"이 맨 위에 표시됩니다. –

+0

Navigation Controller와 ListViewController 사이에서만 Seque가 있습니다.그래서 DetaIViewController를 프로그래밍 방식으로 호출합니다. –