2011-02-25 3 views
1

탭으로 작동하는 UISegmented 컨트롤이 있습니다. 탭을 클릭하면 다른 페이지로보기를 변경하려고했습니다.monotouch - 현재보기 설정

본질적으로 나는 현재 두 개의보기가 각각 하나의보기에서 다른보기로 또는 그 반대로 전환하는 자체 세그먼트 조절 기능을 가지고 있습니다.

PresentModalViewController를 사용하는 경우 사용자가 uiSegment를 잘못 변경할 때마다 스택에 뷰를 계속 추가합니다.

현재보기를 새보기로 설정하려고합니다. >

-> [VC 항목의 테이블을 보여줍니다]를 -

가 이

[주요 창] : 하지만 동시에 나는 기각 호출하면 내가 다시보기 할 수 있도록이 내 applicantion 구조 때문에처럼

뷰 1 :

partial void Tabs_Changed (UISegmentedControl sender) 
    { 
     if(btnTabs.SelectedSegment == 1) { 
      View2 view2 = new View2(); //load view 2 
      this.PresentModalViewController(view2,false); 
     } 
    } 

보기 2 : 내가 예를 들어했을 뷰 모두에서 매우

        |--> [VC with Segment control View 1] 

            | (swap between) 

            |--> [VC with Segment control View 2] 

partial void Tabs_Changed (UISegmentedControl sender) 
    { 
     if(btnTabs.SelectedSegment == 0) { 
      View1 view1 = new View1(); //load view 1 
      this.PresentModalViewController(view1,false); 
     } 
    } 

하지만 앱을 예측할 수 없게 만드는 이유는 내가 지속적으로 뷰를 쌓아 올릴 수 있습니다.

도와주세요. 정말 PresentModalViewController() 메소드를 사용 제이슨

답변

0

갈 방법이 아니다. 실제로 여러 뷰를 스태킹하고 있으며 이는 나쁜 일입니다.

UISegmentedControl 및 다른 2 개의 하위 뷰를 추가하면 하나의 뷰가 생성됩니다 (AddSubview (View) 메서드를 사용하면됩니다). 당신의 viewDidLoad 방법에

은을 한눈를 생성하고 숨길 사용하여 두 번째 :

view1 = new UIView(){BackgroundColor = UIColor.Green}; 
view2 = new UIView(){Hidden = true, BackgroundColor = UIColor.Red}; 
this.AddSubview(view1); 
this.AddSubview(view2); 

을 지금, 당신의 방법 :

partial void Tabs_Changed (UISegmentedControl sender) 
{ 
    bool v1Visible = btnTabs.SelectedSegment == 0); 
    view1.Hidden = !v1Visible; 
    view2.Hidden = v1Visible;  
} 

내가 코드를 실행를 havent,하지만 작동합니다. 희망이 도움이됩니다.