用从子视图调用的视图填充iphone屏幕

时间:2013-02-20 13:39:10

标签: ios xamarin.ios

我的应用程序中的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);
}

所以我的问题是......

如何设置调用的控制器来填充屏幕?是否可以使用从子视图调用的视图填充屏幕?

编辑:

This is page1 This is the new controller as page1, not as a new view controller filling the screen

由于

2 个答案:

答案 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