Monotouch Dialog Datepicker和RadioGroup Navigationitem

时间:2012-02-16 11:28:19

标签: dialog uinavigationitem monotouch.dialog

我无法弄清楚如何正确设计RadioGroup的推送视图控制器导航返回项目。

因此,在可选择语言的后续屏幕中,后退按钮显示“设置”并为蓝色。但是我想让它说回来并改变它的设计机制存在并且我已经在其他屏幕中使用了。

我建立起来像这样:

var rootSettings = new RootElement ("Settings");
            var sectionNotificationSettings = new Section ("Notification settings");  

            BooleanElement pushEnabled = new BooleanElement("Push notifications", settings.PushEnabled);
            sectionNotificationSettings.Add(pushEnabled);  

            var sectionCountrySettings = new Section("Country settings");
            var rootRadioGroup = new TransparentRootElement ("Language", new RadioGroup("languages", 0));

            var sectionRadioElements = new Section("");

            foreach(var language in settings.Languages)
            {
                RadioElement selectableLanguage = new RadioElement(language.Key, "languages");
                sectionRadioElements.Add(selectableLanguage);
            }

            rootRadioGroup.Add(sectionRadioElements);

            sectionCountrySettings.Add(rootRadioGroup);

            rootSettings.Add (sectionNotificationSettings);
            rootSettings.Add(sectionCountrySettings);

在这里我定义了TransparentRootElement,我认为我可以编辑导航项目:

public class TransparentRootElement : RootElement {

public TransparentRootElement (string caption) : base (caption)
{

}

public TransparentRootElement (string caption, Group radioGroup ) : base (caption, radioGroup)
{

}

public override void Selected (DialogViewController dvc, UITableView tableView, NSIndexPath path)
{       
    base.Selected (dvc, tableView, path, true);
}

void HandleMenuButtonTouchUpInside (object sender, EventArgs e)
{
    _dvc.NavigationController.PopViewControllerAnimated(true);
}

public override UITableViewCell GetCell (UITableView tv)
{
    var cell = base.GetCell (tv);
    //cell.BackgroundColor = UIColor.White;

    return cell;
}
}

我尝试了许多编辑方法,但没有一个工作。我也开始编辑Monotouch对话框中的Elements.cs,但这也没有帮助我。

有意见的人吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

我相信更改导航的后退按钮,你必须隐藏默认的后退按钮,然后分配你自己的。 (在您推动新视图控制器之前,我相信您的情况,它会在您按语言屏幕之前)这样的事情:

toPushscreen.NavigationItem.SetHidesBackButton(true, true);
toPushscreen.NavigationItem.LeftBarButtonItem = new UIBarButtonItem("Back", UIBarButtonItemStyle.Plain, myHandler);
currentScreen.NavigationController.PushViewController(toPushscreen, true);

希望这有帮助!