我有 5 个 TabBar 视图...如何选择应用程序首次启动时出现的视图?(我使用应用程序启动时为空的数据进行了一些计算)。该应用程序甚至在它到达 FinishedLaunching 之前就崩溃了!它如何确定哪个视图将成为第一个视图?
以前的一个答案我得到了建议 tabBarController.SelectedIndex = 0; (我正在使用 MonoTouch)但没有告诉我在哪里放置它。
我有 5 个 TabBar 视图...如何选择应用程序首次启动时出现的视图?(我使用应用程序启动时为空的数据进行了一些计算)。该应用程序甚至在它到达 FinishedLaunching 之前就崩溃了!它如何确定哪个视图将成为第一个视图?
以前的一个答案我得到了建议 tabBarController.SelectedIndex = 0; (我正在使用 MonoTouch)但没有告诉我在哪里放置它。
您应该在 UITabBarController 的 ViewDidLoad 中创建视图控制器,而不是在 ViewDidAppear 中。我使用下面的代码(第一部分在您的 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;
}
}
这将在启动时显示 Tab3(索引为 2)。
ViewControllerTab1 等是派生自例如的类。UIViewController 或 UINavigationController 在自己的 ViewDidLoad() 中实现其用户界面
var u = new UIViewController[]
{
tab1,
tab2,
tab3,
tab4,
tab5,
};
this.ViewControllers = u;
this.SelectedViewController = tab1;
我通常对 UITabBarController 进行子类化,并将上面的代码添加到我覆盖的 ViewDidAppear 方法中。