3

Fahrzeug 级

    {
        [Entry ("Typ")]
        public string typ;
        [Entry ("Name")]
        public string name;
        [RadioSelection("ListOfString")]
        public int selected=0;
        public IList<string> ListOfString;


    }
    public override void ViewWillAppear (bool animated)
    {
        base.ViewWillAppear (animated);
        Fahrzeug x = new Fahrzeug();
        x.typ="Neuwagen";
        x.name="BMW X3";
        x.ListOfString=new List<string>();
        x.ListOfString.Add("asdf");
        x.ListOfString.Add("bsdf");
    var bc= new BindingContext(null,x,"asdf");
        var dv = new MonoTouch.Dialog.DialogViewController(bc.Root,true);
        dv.WantsFullScreenLayout=false;
        dv.View.BackgroundColor=UIColor.DarkGray;


    this.startview.AddSubview(dv.View);

你好,我有上面的代码。startview不是全屏的,上面有一个navbar,正常的dv也超出了navbar,但是当我点击ILISTt更改值时,ILIST是全屏的,所以我无法返回,...重要的是,实际是一个 UIView,我想在 uiview 中使用它,..我想使用反射,因为这样我可以直接序列化数据任何想法?

4

3 回答 3

9

我有同样的问题,后退按钮没有显示。在查看 DialogViewController.cs 后,我看到构造函数可以采用第二个参数“推送”。如果将其设置为true,则返回按钮设置为可见。

于 2011-03-11T23:50:18.280 回答
3

后退按钮来自 UINavigationController。您确实需要创建一个 UINavigationController 来保存您的 DialogViewController,或者您需要手动自定义您的 DialogViewController。

在第一种情况下,您可以使用:

var ui = new UINavigationController (dv);

“ui”然后包含您的实际视图控制器,将其添加到您的顶级窗口,或者如果您已经有一个视图控制器(例如,来自现有控制器中的一些回调):

PresentModalViewController (ui, shouldAnimate);

或者,您可以手动自定义 DialogViewController,您可以在 TweetStation/UI/Timeline.cs 上的 TweetStation 中查看我是如何做到这一点的,并添加您需要的按钮。

于 2010-11-04T14:46:05.927 回答
1

我遇到了同样的问题,原因是缺少“标题”,因此带有 oa 标题的导航控制器不显示“后退”按钮。

解决方案很简单,当我生成根元素时,我忘记了第一个根的标题,如下所示:

var root = new RootElement("Settings"){ // <-- IMPORTANT! A title must be set here(!)
        new Section("Current server"){
            new RootElement("Server", new RadioGroup (0)){
                //...
            }
        },

我继承的 DialogViewController 的构造函数例如:

public partial class SettingsViewController : DialogViewController
{
    public SettingsViewController () :
        base (UITableViewStyle.Grouped, null, true)
    {
        Root = GetRoot();
    }

这就像一个魅力;-)

顺便说一句:在 viewwillappear 我添加一个按钮并重新加载数据:

public override void ViewWillAppear (bool animated)
{
        NavigationItem.SetRightBarButtonItem(
            new UIBarButtonItem("Add Server", UIBarButtonItemStyle.Plain, (sender,args) => {
            // button was clicked

            NavigationController.PushViewController(new AddServerDialogViewController(), true);

        }), true);

        //TableView.SetEditing(true, true);

        ReloadData();

        base.ViewWillAppear(true);
}
于 2013-04-07T11:18:37.160 回答