Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.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
C# 解除后PushModalAsync查看控制器崩溃应用_C#_Ios_Xamarin - Fatal编程技术网

C# 解除后PushModalAsync查看控制器崩溃应用

C# 解除后PushModalAsync查看控制器崩溃应用,c#,ios,xamarin,C#,Ios,Xamarin,我正在使用Xamarin Auth通过谷歌进行连接。身份验证完成且确定后,我会执行以下操作: UIViewController.DismissViewController(true, null); 然后,我点击一个按钮,尝试制作一个pushmodalasync: await Application.Current.MainPage.Navigation.PushModalAsync(navigationPage) 执行此操作时,我的应用程序会崩溃,但出现以下异常: System.Object

我正在使用Xamarin Auth通过谷歌进行连接。身份验证完成且确定后,我会执行以下操作:

UIViewController.DismissViewController(true, null);
然后,我点击一个按钮,尝试制作一个pushmodalasync:

await Application.Current.MainPage.Navigation.PushModalAsync(navigationPage)
执行此操作时,我的应用程序会崩溃,但出现以下异常:

System.ObjectDisposedException:无法访问已处置的对象。 对象名称:“平台渲染器”。在 NETObjut.GETHySuffRead()[0x000 04a] /Library/Frameworks/Xamarin.iOS.framework/Versions/12.2.1.16/src/Xamarin.iOS/Foundation/NSObject2.cs:456 在中的UIKit.UIViewController.get_View()[0x0002a]处 /Library/Frameworks/Xamarin.iOS.framework/Versions/12.2.1.16/src/Xamarin.iOS/UIKit/UIViewController.g.cs:2983 位于中的Xamarin.Forms.Platform.iOS.Platform.EndEditing()[0x00051] :0 at Xamarin.Forms.Platform.iOS.Platform.Xamarin.Forms.INavigation.PushModalAsync (Xamarin.Forms.Page模式,System.Boolean动画)[0x00000]英寸 :0 at Xamarin.Forms.Internals.NavigationProxy.OnPushModal (Xamarin.Forms.Page模式,System.Boolean动画)[0x00022]英寸 D:\a\1\s\Xamarin.Forms.Core\NavigationProxy.cs:212 at Xamarin.Forms.Application+NavigationImpl.n_u1(Xamarin.Forms.Page 模态,系统。布尔值(动画) :0 在Xamarin.Forms.Application+NavigationImpl+d_u3.MoveNext ()[0x00065]

如果我不这样做

UIViewController.DismissViewController(true, null);
我的应用程序没有崩溃

以下是iOS中与google连接的完整页面代码:

public class GoogleLoginPageIos : IGoogleLoginPage
  {
    public static GoogleAuthenticator m_auth;
    private static UIViewController viewController;

    public void OnAuthenticationCompleted()
    {
      viewController.DismissViewController(true, null);
    }

    public void OnAuthenticationCanceled()
    {
      viewController.DismissViewController(true, null);
    }

    public void OnAuthenticationFailed()
    {
      viewController.DismissViewController(true, null);
    }

    public void StartAuthentication(Action onStartLogin, Action<Account> onSuccessfullLogin)
    {
      m_auth = new GoogleAuthenticator(onStartLogin, onSuccessfullLogin, this);

      var authenticator = m_auth.OAuth2Authenticator;
      var mainViewController = UIApplication.SharedApplication.KeyWindow.RootViewController;
      viewController = authenticator.GetUI();

      mainViewController.PresentViewController(viewController, true, null);
    }
  }
公共类GoogleLoginPageIos:IGoogleLoginPage
{
公共静态身份验证程序m_auth;
专用静态UIViewController-viewController;
身份验证已完成()上的公共无效
{
DismissViewController(true,null);
}
身份验证已取消()上的公共无效
{
DismissViewController(true,null);
}
AuthenticationFailed()上的公共无效
{
DismissViewController(true,null);
}
public void StartAuthentication(开始登录时的操作,成功登录时的操作)
{
m_auth=新的GoogleAuthenticator(onStartLogin、onSuccessfullLogin、this);
var authenticator=m_auth.OAuth2Authenticator;
var mainViewController=UIApplication.SharedApplication.KeyWindow.RootViewController;
viewController=authenticator.GetUI();
mainViewController.PresentViewController(viewController,true,null);
}
}
我使用的是选项卡式页面

有人能帮我吗


谢谢

什么是VC实例
UIViewController
?它是你的表单应用程序(看起来像)…它是
authenticator.GetUI()实例将完整的异常/stacetrace添加到问题中好的,完成:-)您可以共享该页面中的所有相关代码吗?我不知道您使用的是Xamarin.forms应用程序还是Xamarin.iOS应用程序?为什么UIViewController出现在Xamarin.forms应用程序中?