我的应用程序中的View上有一个UIScrollView和一个UIPageControl。 scrollview包含2个viewcontrollers(page1和page2),每个页面都在一个单独的类中管理,并有一个按钮列表。
我的问题是,当我在page1中触摸一个按钮时,我想打开一个新的控制器,例如,新的viewcontroller显示为scrollview的子视图(是新的page1),所以pagecontrol和page2正在显示,滚动仍然有效。
这是正常的,因为我在我的page1代码中执行此操作:
void HandleTouchUpInside (object sender, EventArgs e)
{
MyNewController mnc = new MyNewController();
this.View.AddSubview(mnc.View);
}
所以我的问题是......
如何设置调用的控制器来填充屏幕?是否可以使用从子视图调用的视图填充屏幕?
编辑:
由于
答案 0 :(得分:1)
我建议使用StoryBoard编辑器来设计您的UI。按住Ctrl键并从按钮拖动到MyNewController。为Action Segue选择模态。
void HandleTouchUpInside (object sender, EventArgs e)
{
bool animated = true;
NSAction completionHandler = null;
MyNewController mnc = new MyNewController();
PresentViewController(mnc, animated, completionHandler);
}
在任何一种情况下,如果你想从MyNewController中解除模态视图调用DismissViewController
。
bool animated = true;
NSAction completionHandler = null;
DismissViewController(animated, completionHandler);
答案 1 :(得分:0)
最后,我解决了从我的应用代表处调用顶级导航控制器的问题。
void HandleTouchUpInside (object sender, EventArgs e)
{
Clases viewClases = new Clases();
AppDelegate del = (AppDelegate)UIApplication.SharedApplication.Delegate;
del._navController.SetNavigationBarHidden(false, true);
del._navController.PushViewController(viewClases, false);
}
有关此内容的更多信息 link