2010-12-30 1 views
0

5 개의 TabBar보기가 있습니다 ... 응용 프로그램을 처음 시작할 때 어떤보기가 나타나게합니까? (나는 계산 시작 시간에 null 인 데이터를 사용한다.) 그것은 심지어 FinishedLaunching에 도착하기 전에 응용 프로그램이 충돌! 그리고 어떤 관점이 첫 번째 관점이 될지를 어떻게 결정합니까?MonoTouch : TabBarController의 여러보기에서 초기보기를 선택하는 방법

하나의 이전 답변 나는 tabBarController.SelectedIndex = 0; (저는 MonoTouch를 사용하고 있습니다) 하지만 어디에 놓을 지 말하지 않았습니다.

답변

0
var u = new UIViewController[] 
{ 
    tab1, 
    tab2, 
    tab3, 
    tab4, 
    tab5, 
}; 

this.ViewControllers = u; 
this.SelectedViewController = tab1; 

저는 일반적으로 UITabBarController를 하위 클래스로 만들고 위의 코드를 위에 재정의 한 ViewDidAppear 메서드에 추가합니다.

+0

감사합니다. Kevin ... 시도해보고 다시 답변 해 드리겠습니다. 나는이 코드를 어디로 가지고 있습니까? 저는 MonoTouch에 처음 왔으므로 저와 함께 견뎌주십시오 ... 문제가 생기면 더 많은 질문을 할 것입니다. – SpokaneDude

+0

절름발이 질문을 무시하십시오. – SpokaneDude

+0

Hmmm .. IB로 이것을 만들었습니다 ... tab1, tab2 등이 TabBar 자체에 표시되는 이름을 참조 할 것 같습니까? 그들은 문자열인가, 또는? 실제 코드 예제가 있습니까? – SpokaneDude

1

ViewDidAppear가 아니라 UITabBarController의 ViewDidLoad에서보기 컨트롤러를 만들어야합니다. 나는 아래의 코드 (첫 번째 부분은 AppDelegate에 클래스에) 사용

// WARNING: Do not make these variables local. MonoTouch will loose the reference to them! 
    private UIWindow _mainWindow; 
    private MainTabBarController _mainTabBarController; 

    public override bool FinishedLaunching(UIApplication app, NSDictionary options) 
    { 
     _mainWindow = new UIWindow(UIScreen.MainScreen.Bounds); 
     _mainTabBarController = new MainTabBarController(); 
     _mainWindow.AddSubview(_mainTabBarController.View); 
     _mainWindow.MakeKeyAndVisible(); 
     return true; 
    } 

귀하의 MainTabBarController 클래스는 다음과 같아야합니다

public class MainTabBarController : UITabBarController 
{ 
    public override void ViewDidLoad() 
    { 
     ViewControllers = new UIViewController[] 
     { 
      new ViewControllerTab1(), 
      new ViewControllerTab2(), 
      new ViewControllerTab3(), 
      new ViewControllerTab4(), 
      new ViewControllerTab5() 
     }; 
     SelectedIndex = 2; 
    } 
} 

이 시작할 때 (지수 2) tab3에 표시됩니다.

ViewControllerTab1 등은 예를 들어. 자신의 ViewDidLoad()에서 사용자 인터페이스를 구현하는 UIViewController 또는 UINavigationController

+0

작은 메모 : 여기에 Base.DownLoad를 호출해야합니다. 그렇지 않습니까? –

+0

여기 base.ViewDidLoad를 호출 할 필요가 없다고 생각합니다. UIViewController에 대한 애플의 문서는 이것이 필요하다는 것을 말하지 않는다. 필요한 경우 Apple에서 지정합니다 (예 : viewWillAppear : "이 메서드를 재정의하면 구현의 어느 시점에서 super를 호출해야합니다"). 하지만 방금 iPhone 프로그래밍을 시작 했으므로 저는이 분야의 전문가가 아닙니다. –

관련 문제