2010-01-19 6 views

답변

4

두 번째보기에서 세 번째보기를 만들고 생성자의 secondView에서 전달하는 모달보기로 표시하려고합니다. 이것은 원하는 방식으로 애니메이션을 만드는 가장 쉬운 방법입니다.

세 번째보기
var thirdView = new ThirdView(secondView); 
this.PresentModalViewController(thirdView, true); 

, 당신이 도움이

secondView.DismissModalViewControllerAnimated(true); 

희망,

ChrisNTR SecondView 전달 호출하고 호출 할 수 있습니다

다음
+0

나는 DismissModalViewControllerAnimated가 무엇을 이해하지 못하고 있습니다. 설명 할 수 있니? 또한 ViewDidLoad 핸들러에서이 작업을 수행한다고 가정합니다. –

1

는 완전한 작동 예입니다 . 위의 예는 모든 것을 알아 내기 위해 사용했던 것이지만 위의 예보다 조금 더 간단합니다. chrisntr에게 감사드립니다.

이 방법의 가장 멋진 점은 (게임용으로 만든 것과 같은) 예술적 맞춤형 UI의 경우 TabBar, 탐색 막대 등의 기성품 UI 요소가 없다는 것입니다. 크리에이티브 애플리케이션은 표준 UI를 사용하지 않습니다. 당신의 finishedlaunching 블록에 main.cs에서

:

ViewController myUIV = new ViewController(); 
window.AddSubview(myUIV.View); 
window.MakeKeyAndVisble(); 

그리고 새로운 코드 파일이 코드를 추가

using System; 
using System.Drawing; 
using MonoTouch.UIKit; 

namespace AnimationTest 
{ 

public class ViewController : UIViewController 
{ 
    UIButton uib = new UIButton(new RectangleF(100,100,40,40)); 
    public override void ViewDidLoad() 
    {  
     Console.WriteLine("UI1"); 
     this.View.BackgroundColor = UIColor.Blue; 
     uib.BackgroundColor = UIColor.White; 
     uib.TouchUpInside += delegate { 
      Console.WriteLine("Hey!"); 
      var vc2 = new SecondController(); 
      PresentModalViewController(vc2, true); 
     }; 
     this.View.AddSubview(uib); 
     base.ViewDidLoad(); 
    } 
} 

public class SecondController : UIViewController 
{ 
    UIButton uib = new UIButton(new RectangleF(100,100,40,40)); 
    public override void ViewDidLoad() 
    { 
     this.View.BackgroundColor = UIColor.White; 
     uib.BackgroundColor = UIColor.Red; 
     uib.TouchUpInside += delegate { 
      this.DismissModalViewControllerAnimated(true); 
     }; 

     this.View.AddSubview(uib); 
     base.ViewDidLoad(); 
    } 
} 
관련 문제