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