Xamarin.ios monotouch-设置当前视图

Xamarin.ios monotouch-设置当前视图,xamarin.ios,Xamarin.ios,我有一个UISegmented控件,它充当选项卡。 单击选项卡时,我想将视图更改为另一个页面 基本上目前我有两个视图,每个视图都有自己的段控制,从一个视图切换到另一个视图,反之亦然 如果我使用PresentModalViewController,每次用户更改uiSegment时,我都会不断地将视图添加到堆栈中,这是不好的 我想将当前视图设置为新视图。 但同时确保,如果我打电话解雇,我可以做回一个视图 我的应用程序结构如下: [主窗口]-->[VC显示项目表]--> 因此,在这两种观点中,例如:

我有一个UISegmented控件,它充当选项卡。 单击选项卡时,我想将视图更改为另一个页面

基本上目前我有两个视图,每个视图都有自己的段控制,从一个视图切换到另一个视图,反之亦然

如果我使用PresentModalViewController,每次用户更改uiSegment时,我都会不断地将视图添加到堆栈中,这是不好的

我想将当前视图设置为新视图。 但同时确保,如果我打电话解雇,我可以做回一个视图 我的应用程序结构如下:

[主窗口]-->[VC显示项目表]-->

因此,在这两种观点中,例如:

视图1:

partial void Tabs_Changed (UISegmentedControl sender)
    {
        if( btnTabs.SelectedSegment == 1) {
            View2 view2 = new View2(); //load view 2
            this.PresentModalViewController(view2,false);
        }
    } 
视图2:

partial void Tabs_Changed (UISegmentedControl sender)
    {
        if( btnTabs.SelectedSegment == 0) {
            View1 view1 = new View1(); //load view 1
            this.PresentModalViewController(view1,false);
        }
    } 
但这让应用程序变得不可预测,大概是因为我不断累积浏览量

请帮忙


Jason

使用PresentModalViewController()方法确实不是一条好路。您确实在堆叠多个视图,这是一件坏事

我要做的是有一个视图,其中添加了UISegmentedControl和另外两个子视图(使用AddSubview(view)方法)

在viewDidLoad方法中,使用以下方法创建面纱并隐藏第二个面纱:

view1 = new UIView(){BackgroundColor = UIColor.Green}; 
view2 = new UIView(){Hidden = true, BackgroundColor = UIColor.Red};
this.AddSubview(view1);
this.AddSubview(view2);
现在,在您的方法中:

partial void Tabs_Changed (UISegmentedControl sender)
{
   bool v1Visible = btnTabs.SelectedSegment == 0);
   view1.Hidden = !v1Visible;
   view2.Hidden = v1Visible;     
} 
我还没有运行代码,但应该可以运行。希望这有帮助。

这可能会有帮助

但不需要用户界面来切换,请使用从viewcontroller调用应用程序deletegate 差不多

var appDelegate = (AppDelegate) UIApplication.SharedApplication.Delegate;              
appDelegate.switch();
var appDelegate = (AppDelegate) UIApplication.SharedApplication.Delegate;              
appDelegate.switch();