gpt4 book ai didi

IOS ContactUI 编辑后导航回应用程序

转载 作者:行者123 更新时间:2023-11-29 00:12:00 25 4
gpt4 key购买 nike

在我的 Xamarin IOS 应用程序中,我使用以下代码打开 ContactUI:

var contact = new AddressBookService().GetCNContactById(addressbookId);
var view = CNContactViewController.FromNewContact(contact);
view.Editing = true;

// Display the view
var window = UIApplication.SharedApplication.KeyWindow;
var vc = window.RootViewController;
while (vc.PresentedViewController != null)
{
vc = vc.PresentedViewController;
}

var navController = vc as UINavigationController;
if (navController != null)
{
vc = navController.ViewControllers.Last();
}
vc.PresentViewController(new UINavigationController(view), true, null);

我将它包装在 INavigationController 中,因为没有它就不会加载。输出中打印了以下消息:

[CNUI ERROR] Contact view delayed appearance timed out

编辑对话框正确显示。但在我点击保存后,我进入了详细信息 View :

enter image description here

如您所见,第二个问题是没有后退按钮。所以回到我的应用程序的唯一方法是终止应用程序并重新开始。保存联系人后,有没有办法直接导航回我的应用程序?或者将 ContactUI 包装在我当前的 ViewController 中,以便 TabBar 在下方仍然可见?

最佳答案

实现CNContactViewControllerDelegate并使用CNContactViewController的DidComplete委托(delegate)。单击“完成”按钮时将触发 DidComplete

  1. 设置委托(delegate):

    var view = CNContactViewController.FromNewContact(contact);
    view.Delegate = new MyCNConatactViewControllerDelegate();
  2. 实现 DidComplete,并在此处关闭包含 CNContactViewController 的 NavigationController:

    public class MyCNConatactViewControllerDelegate : CNContactViewControllerDelegate
    {

    public override void DidComplete(CNContactViewController viewController, CNContact contact)
    {
    viewController.NavigationController.DismissViewController(true, null);
    }

    }

关于IOS ContactUI 编辑后导航回应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46243273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com