Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关闭背面的ModalView按钮。(Xamarin)_Xamarin_Navigation_Modal Dialog - Fatal编程技术网

关闭背面的ModalView按钮。(Xamarin)

关闭背面的ModalView按钮。(Xamarin),xamarin,navigation,modal-dialog,Xamarin,Navigation,Modal Dialog,我在点击按钮时显示一个ModalView(导航页面)。 它工作得很好。我想关闭背面的Modalview按钮。 如果你有任何想法,请引导我 我的代码如下。 按钮点击事件 protected void btnEdit_Click(object sender, EventArgs e) { var navigation = new NavigationPage(new Settings()); UIViewController navc = navigatio

我在点击按钮时显示一个ModalView(导航页面)。 它工作得很好。我想关闭背面的Modalview按钮。 如果你有任何想法,请引导我

我的代码如下。 按钮点击事件

 protected void btnEdit_Click(object sender, EventArgs e)
    {
        var navigation = new NavigationPage(new Settings());
        UIViewController navc = navigation.CreateViewController();
        navc.ModalPresentationStyle = UIModalPresentationStyle.FullScreen;
         this.PresentViewController(navc, true, null);
    }
设置表单代码

 [XamlCompilation(XamlCompilationOptions.Compile)]
public partial class Settings : ContentPage
{
    public Settings()
    {

        var backItem = new ToolbarItem
        {
            Text = "Back"
        };            
        this.ToolbarItems.Add(backItem);
        backItem .SetBinding(MenuItem.CommandProperty, "BackClicked");
        backItem .Clicked += (object sender, System.EventArgs e) =>
        {
            **// This code Not working**
            Navigation.PopModalAsync(false);
        };
        InitializeComponent();
    }
}

正如@Jason在评论中提到的,您似乎将本机iOS代码与Xamarin.Forms代码混合在一起。要从XamForms打开模式视图,可以调用
Navigation.PushModal()

根据评论更新

public class MyTabbarPage : TabbarPage
{
    ...

    public void ButtonClicked()
    {
        var navigation = new NavigationPage(new Settings());
        await Navigation.PushModalAsync(navigation);
    }
}


// Inside renderer

protected async void btnEdit_Click(object sender, EventArgs e)
{
    (Element as MyTabbarPage).ButtonClicked();
}

我按照下面的代码调用XamForms类函数

  protected void btnEdit_Click(object sender, EventArgs e)
            {
                Maintabpage obj =(Maintabpage)Xamarin.Forms.Application.Current.MainPage;
                obj.ButtonClicked();
            }

您似乎将特定于iOS的代码与表单代码混合在一起。你的代码有问题吗?错误、异常或不正确的行为?请具体说明,我们不必猜测它在做什么。运行时不会显示错误。模态视图显示正确。但close不起作用。我正在使用crossplatform。在按钮上单击“我想显示modalview”,在“上一步”按钮上单击“我想关闭视图”。我已经为tabbar创建了自定义渲染类,在tabbar的中心添加了一个圆形按钮。当用户单击要显示的模型时。因此,当我在Tabbar render类中使用导航类时,它会显示错误消息,因为当前文档中不存在导航。我建议在XamForms项目中创建一个子类,该子类具有公共方法,您可以在每次单击按钮时调用该方法,这样,您可以在XamForms代码中处理导航,但渲染代码不起作用。所以我在下面使用了代码Maintabpage obj=(Maintabpage)Xamarin.Forms.Application.Current.MainPage;对象按钮单击();
  protected void btnEdit_Click(object sender, EventArgs e)
            {
                Maintabpage obj =(Maintabpage)Xamarin.Forms.Application.Current.MainPage;
                obj.ButtonClicked();
            }