gpt4 book ai didi

ios - Xamarin iOS - 以编程方式加载 Storyboard 引用

转载 作者:行者123 更新时间:2023-12-01 16:02:43 24 4
gpt4 key购买 nike

我有 2 个 Storyboard:Activities.storyboardContacts.storyboard .

Contacts.storyboard我有一个 ViewController:ContactDetails .

Activities.storyboard我需要引用 ContactDetailsContacts.storyboard
我创建了一个 Storyboard ReferenceActivities.storyboard并引用了ContactDetails .



我尝试以编程方式加载这个 View Controller

var viewController = Storyboard.InstantiateViewController(nameof(ContactDetails));
NavigationController.PushViewController(viewController, true);

但是我没有像普通的 View Controller 一样以编程方式加载

Foundation.MonoTouchException: Objective-C exception thrown. Name: NSInvalidArgumentException Reason: Storyboard () doesn't contain a view controller with identifier 'ContactDetails'



我知道它是这样工作的:
var storyboard = UIStoryboard.FromName(nameof(Contact), null);
var viewController = storyboard.InstantiateViewController(nameof(ContactDetails));
NavigationController.PushViewController(viewController, true);

但是我想使用引用 View Controller ,可以吗?

最佳答案

如果您使用 Storyboard ID,它也可以用作“恢复标识符”并允许您从 Storyboard 实例化。我建议使用这种方法,它往往是实现你想要做的最简单的方法。

enter image description here

还值得注意的是,您必须将实例化的 UIViewController 转换为它的类型(至少我发现如果我想传递变量等,它会让生活更轻松。)

ContactDetails viewController = Storyboard.InstantiateViewController(nameof(ContactDetails)) as ContactDetails;

或者
ContactDetails viewController = Storyboard.InstantiateViewController("ContactDetails") as ContactDetails;

还值得注意的是,UIViewController 的 Xamarin iOS 'Storyboard' 属性会自动确定 Storyboard 引用,并且值得检查它是否确实为您带来了指向 'Contact' Storyboard的指针(因为在 iOS 开发中当然可以使用多个 Storyboard应该你选。)

关于ios - Xamarin iOS - 以编程方式加载 Storyboard 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42904487/

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