我是iOS应用开发,Xamarin / Xcode和Monotouch.dialog的新手。我试图在"更多关于章节和RootElements:RootElements" (http://docs.xamarin.com/guides/ios/user_interface/monotouch.dialog/)让我自己熟悉MonoTouch.Dialog的多屏应用程序。 MonoTouch.Dialog看起来很简单,但我遇到了一个无法解释的问题(q2)。
所以这里是我的问题/问题:
如何在使用非桌面屏幕的多屏幕应用程序中集成MonoTouch.Dialog创建的页面?我是否必须在主NavigationController中创建一个NavigationController [例如 - > (NavigationController) - 主页 - SomethingElse - (NavigationController) - (Monotouch.Dialog创建页面)],如何连接起始页面和MonoTouch.Dialog页面?
在Xamarin-iOS中工作,我完成了示例描述的所有内容,并观看了大量视频,并阅读了MonoTouch.dialog的几个Xamarin文档,但是当我单击创建的元素行(&#下的行)时34;晚餐"部分),他们不会转到行后面的新RootElement。我究竟做错了什么?我创建了一个新的DialogViewController项目,这就是我在AppDelegate.cs中的Xamarin代码中编辑的所有内容(Xcode storyboard只包含一个NavigationController)。
UIWindow _window;
UINavigationController _nav;
DialogViewController _rootVC;
RootElement _rootElement;
public override UIWindow Window {
get;
set;
}
public override bool FinishedLaunching (UIApplication application, NSDictionary launchOptions)
{
_window = new UIWindow (UIScreen.MainScreen.Bounds);
_rootElement = new RootElement ("Meals") {
new Section ("Dinner") {
(Element)new RootElement ("Dessert", new RadioGroup ("dessert", 2)) {
new Section () {
new RadioElement ("Ice Cream", "dessert"),
new RadioElement ("Milkshake", "dessert"),
new RadioElement ("Chocolate Cake", "dessert")
}
},
(Element)new RootElement ("Something"){
new Section () {
new EntryElement ("Name", "Click to edit", "")
}
}
}// end "Dinner"
}; //end "Meals"
_rootVC = new DialogViewController (_rootElement);
_nav = new UINavigationController (_rootVC);
_window.RootViewController = _nav;
_window.MakeKeyAndVisible ();
return true;
} //end FinishedLaunching
答案 0 :(得分:0)
您的代码适用于我。我不清楚你的故事板在哪里发挥作用 - 当代码中宣布你的所有UI时都没有必要。
在“堆叠”中只需要一个NavigationController
。如果您的第一页只是UIViewController
中包含一些按钮的NavigationController
,您可以连接其中一个按钮的Touch事件,将MonoTouch.Dialog
UI推送到堆栈
protected void ButtonEvent(object sender, EventArgs e) {
dvc = new DialogViewController(_root);
// every view controller has a NavigationController property that will be non-null
// if that VC is contained within a Nav Controller
NavigationController.PushViewController(dvc,true);
}
同样,在您的MonoTouch.Dialog
用户界面中,您可以拥有StringElement
,其Tapped事件会创建自定义视图控制器类的新实例,并将其推送到导航堆栈。