2013-01-21 14 views
0

매우 쉽습니다.하지만 뭔가 빠졌습니다. 맞춤 요소가 있습니다.Monotouch.Dialog - 요소에서 뷰를 푸시하는 방법

요소의 액세서리를 클릭하면 스택에보기를 푸시합니다. 나는.

this.AccessoryTapped +=() => { 
    Console.WriteLine ("Tapped"); 
    if (MyParent != null) { 
    MyParent.PresentViewController(new MyDemoController("Details"),false,null); 
      } 
}; 

여기서 MyDemoController의 GUI는 monotouch.dialog로 생성됩니다.

저는 뷰와 컨트롤로 GUI를 분해하려고합니다. 컨트롤이 뷰를 스택으로 밀어 넣을 수 있고, 뭔가 일어나기를 기다렸다가 사용자가 컨트롤을 포함하는 이전 뷰로 다시 이동합니다 .

의견이 있으십니까? 감사합니다. .

+0

무엇이 질문입니까? 당신은 쉬워야한다고 말하지만 당신은 뭔가를 놓치고 있습니다. 무슨 일 이니? 오류가 발생합니까? MyDemoController가 존재하지 않습니까? – svn

답변

0

AccessoryTapped 메서드에서 동작을 하드 코드하지 않는 것이 좋습니다. 왜냐하면 프로젝트의 다른 위치에서 해당 구성 요소를 사용하려는 날이 매우 가까웠 기 때문입니다. 그리고 아마 가까운 장래에 다른 행동이 필요하거나 예를 들어 MyDemoController가없는 다른 프로젝트가 될 것입니다. 그래서

this.AccessoryTapped +=() => { 
    Console.WriteLine ("Tapped"); 
    if (accessoryTapped != null) { 
     accessoryTapped(); 
    } 
}; 

당신이 PostSummaryElement을 만들어야합니다 : 당신의 AccessoryTapped 그 방법입니다 수정 한 후 요소와보기

public Action accessoryTapped; 

및 :
그래서 나는 다음과 같은 속성을 만들 것을 제안 다음과 같은 방법으로 개체 :

var myElement = new PostSummaryElement() { 
    accessoryTapped = someFunction, 
} 
... 
void someFunction() 
{ 
    NavigationController.PushViewController (new MyDemoController("Details"), true); 
} 
+0

아주 좋은 지적입니다. 고마워, 내가 그걸 줄거야. –

관련 문제