2012-02-15 4 views
2

에뮬레이터의 일부 인스턴스에서 뒤로 하드웨어 버튼을 클릭하면 생성자가로드되고 생성자가있는 다른 페이지로 돌아갑니다. 전화가 안돼. 왜 이래? 에뮬레이터 때문인가요?windows phone 7 app - back 버튼으로 인해 새 페이지 인스턴스가 발생합니다.

+0

뒤로 버튼을 클릭하기 전에 무엇을 했습니까? 새 페이지로 이동 했습니까? 집 (창) 버튼을 탭 했습니까? –

+0

해결책이 있습니까? –

+0

아직 ....... – chugh97

답변

0

탐색을 어떻게 수행합니까? 애니메이션을 수행하기 위해 초기 OnNavigatingFrom을 취소 한 다음 애니메이션 완료 후 탐색을 다시 듣고 있습니까? 그런 다음 탐색 스택에 새로운 페이지 인스턴스를 추가 NavigationService.Navigate()를 호출 할 때

protected override void OnNavigatingFrom(System.Windows.Navigation.NavigatingCancelEventArgs e) 
{ 
    if (_pendingNavigation == null) 
    { 
     VisualStateManager.GoToState(this, "LeavingPage", true); 
     _pendingNavigation = e.Uri; 
     e.Cancel = true; 
    } 

    base.OnNavigatingFrom(e); 
} 

void LeavingPage_Completed(object sender, EventArgs e) 
{ 
    var uri = _pendingNavigation; 
    NavigationService.Navigate(uri); 
    _pendingNavigation = null; 
} 

버그

가 발생합니다. 이 버그를 수정하려면 초기 페이지 탐색이 "새"탐색인지 확인하고 확인해야합니다. 다음과 같은 내용 :

if (e.NavigationMode == NavigationMode.New && _pendingNavigation == null) 
{ 
    VisualStateManager.GoToState(this, "LeavingPage", true); 
    _pendingNavigation = e.Uri; 
    e.Cancel = true; 
}