从Xamarin.com上的示例中,您可以构建基本M.T. Dialog应用程序,但是如何构建真实应用程序?
你呢:
1)从那里创建一个单独的DialogViewController树view/RootElement或者,
2)DialogViewController为每个视图创建一个UINavigationController并根据需要使用并推送它?
根据你的答案,更好的反应是如何?我已经构建了示例任务应用程序,所以我理解向表中添加元素,单击它以转到"下一个"视图进行编辑,但是如何单击以进行非编辑?如果答案是1号,如何点击按钮,进入下一个视图?
修订:
可能没有一个正确的答案,但我想出来的似乎对我们有用.上面的数字2是所选择的,下面是当前存在的代码的示例.我们所做的是创建一个导航控制器,AppDelegate并在整个应用程序中提供对它的访问,如下所示:
public partial class AppDelegate : UIApplicationDelegate
{
public UIWindow window { get; private set; }
//< There's a Window property/field which we chose not to bother with
public static AppDelegate Current { get; private set; }
public UINavigationController NavController { get; private set; }
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
Current = this;
window …Run Code Online (Sandbox Code Playgroud) uinavigationcontroller xamarin.ios monotouch.dialog dialogviewcontroller
我正在使用 NavigationItem 来驱动应用程序的导航。对于我所有继承自 DialogViewController 的控制器,后退按钮不会显示,即使我这样做了
BackButtonBarItem = news UIBarButtonItem(..)
Run Code Online (Sandbox Code Playgroud)
后退按钮永远不会仅在对话框中显示,但会在所有其他类型的控制器中显示。我错过了什么吗?
在我的一个屏幕中,我需要向DialogViewController添加UIView(带有一些标签和按钮).原因是我没有使用TableView标头,因为我不想在滚动表时滚动这个视图.
如果我将自定义视图添加到导航栏,我可以实现这一点,但我的视图将不会收到任何触摸(导航控制器吃它们).
我也尝试将自定义视图添加到DialogsViewController父控制器,当它工作时,在LoadView()中调整tableview框架的大小不会做任何事情.
是否有任何其他方法可以向DialogViewController添加自定义视图?
谢谢.
给出以下代码,单击每个元素时遇到问题.如果我们假设我有5个练习,因此在foreach()循环中创建了5个元素,当表格被渲染并且我点击任何元素时,委托总是得到第5个(最后一个)元素的练习.
元素显示正确,每个元素显示相关练习的名称.只是委托不能按预期工作.
如果我不使用foreach循环并对每个元素进行硬编码,则它会按预期工作.但是如果我不能动态填充dialogViewController并为每一个使用元素tapped事件,那就不好了.
private void CreateExerciseTable()
{
Section section = new Section();
foreach (var exercise in exercises)
{
var element = new StyledStringElement(exercise.ExerciseName,
delegate { AddExercise(exercise); })
{
Font = Fonts.H3,
TextColor = UIColor.White,
BackgroundColor = RGBColors.LightBlue,
Accessory = UITableViewCellAccessory.DisclosureIndicator
};
section.Elements.Add(element);
}
var root = new RootElement("Selection") {
section
};
var dv = new DialogViewController(root, true);
dv.Style = UITableViewStyle.Plain;
//Remove the extra blank table lines from the bottom of the table.
UIView footer = new UIView(new System.Drawing.RectangleF(0,0,0,0));
dv.TableView.TableFooterView = …Run Code Online (Sandbox Code Playgroud) 我想在UITabViewController中使用DialogViewController.
问题:嵌套元素不显示导航栏,因此无法返回.
当我将我的类(继承自DialogViewController)推送到UINavigationController时,行为是正确的.如果我在UITabViewController的选项卡中使用相同的类(即使使用底层的UINavigationController),那么行为是错误的.
谁能帮我吗?