私が正しく理解していれば、最初の ViewController を TabViewController にする必要があり、ユーザーが ViewControllers の 1 つで何かを選択すると、下部に TabView ボタンのない ViewController に移行します。
その場合は、次のことを行う必要があります。
AppDelegate.cs では、次のようにウィンドウ/ビュー コントローラーをセットアップする必要があります。
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
window = new UIWindow (UIScreen.MainScreen.Bounds);
rootController = new UINavigationController ();
window.RootViewController = rootController;
var tabController = new UITabBarController ();
var vc1 = new TestController1();
var vc2 = new TestController2();
var vc3 = new TestController3();
tabController.ViewControllers = new UIViewController[] {
vc1,
vc2,
vc3
};
tabController.ViewControllers [0].TabBarItem.Title = "vc1";
tabController.ViewControllers [1].TabBarItem.Title = "vc2";
tabController.ViewControllers [2].TabBarItem.Title = "vc3";
this.rootController.PushViewController(tabController, false);
window.MakeKeyAndVisible ();
return true;
}
このセットアップが完了したら、TestController1 のクラス内から次のように新しいビューに移行できます。
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
var button = UIButton.FromType(UIButtonType.RoundedRect);
button.Frame = new RectangleF (10, 10, 200, 30);
button.SetTitle ("Go Child Controller", UIControlState.Normal);
button.TouchUpInside += (object sender, EventArgs e) => {
NavigationController.PushViewController(new TestController4(), true);
};
View.AddSubview (button);
}
また、タブ ボタンのタイトルを簡単に設定できます。
これを行う代わりに:
tabController.ViewControllers [0].TabBarItem.Title = "vc1";
子 UIViewController 内からタイトルを設定するだけです。
public class TestController1:UIViewController
{
public TestController1 ()
{
this.Title = "vc1";
}
...