关闭背面的ModalView按钮。(Xamarin)
我在点击按钮时显示一个ModalView(导航页面)。 它工作得很好。我想关闭背面的Modalview按钮。 如果你有任何想法,请引导我 我的代码如下。 按钮点击事件关闭背面的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
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();
}