Monotouch UITabBarController部分显示模态视图

时间:2012-03-06 02:24:23

标签: xamarin.ios uitabbarcontroller modal-dialog modalviewcontroller

当我点击我的UITabBarController的一部分或者像GroupMe应用程序中包含的uipopoverbackgroundview时,我想显示一个模态视图。 (图片包含在内供参考)。

http://wpuploads.appadvice.com/wp-content/uploads/2011/09/groupme-iphone-app-300x452-199x300.jpg

你知道一种方法来获得单声道触摸,而不是带有视图控制器的navcontroller的标准加载吗?

...现在我有一个额外的复杂功能,因为我无法使用“在一个标签栏顶部放置一个装饰按钮”解决方法,因为该选项是我的标签栏中的数字7,因此它出现在“更多”部分的控制......任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我使用popover和Dialog实现了类似的东西。

我有一个barbuttonitem,当按下时弹出一个下拉列表,允许你在不同的公司之间进行选择。 myPopController是一个类级变量,然后string元素中的lambda表达式重定向到一个特定的函数。

以下代码

void HandleBtnCompanyhandleClicked (object sender, EventArgs e)
    {

        if(myPopController != null)
        {
            myPopController.Dismiss(true);
            myPopController.Dispose();
        }

        //create the view
        UIView contentView = new UIView();
        contentView.Frame = new RectangleF(new PointF(0,0), new SizeF(320f, 240f));
        //create the view controller
        UIViewController vc = new UIViewController();
        vc.Add(contentView);
        //set the popupcontroller
        myPopController = new UIPopoverController(vc);
        myPopController.PopoverContentSize = new SizeF(320f, 240f);

        //Add the elements to the rootelement for the companies
        // TODO: change to a DB read eventually
        RootElement rt = new RootElement(""){
            new Section ("Requests") {
                new StringElement ("ABC Company",() => {companyTapped("ABC Company");}),
                new StringElement ("Northwind", () => {companyTapped("Northwind");}),
                new StringElement ("Initrode", () => {companyTapped("Initrode");}),
                new StringElement ("Foo Bars Group", () => {companyTapped("Foo Bars Group");}),
                new StringElement ("Widget Corp", () => {companyTapped("Widget Corp");}),
            }
        };

        //create the DVC and add to the popup
        DialogViewController dvc = new DialogViewController(rt);
        contentView.AddSubview(dvc.View);
        myPopController.PresentFromBarButtonItem(btnCompany,UIPopoverArrowDirection.Up,true);
    }