OStack程序员社区-中国程序员成长平台

标题: ios - 从另一个 UIViewController 呈现 UIViewController [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 04:52
标题: ios - 从另一个 UIViewController 呈现 UIViewController

我有一个名为 ViewControllerHome 的 UIViewController,当用户触摸屏幕上的图像时,我想显示第二个 View ,即成员(member)卡。通过触摸图像,我正在执行以下操作:

membershipCardViewController = [[MembershipCardViewController alloc] initWithNibName"MembershipCard" bundle:nil];
[self presentViewController:membershipCardViewController animated:YES completion:nil];

当代码执行时,presentViewController 行抛出异常。

我有一个带有 ViewController 的 .xib,其中包含一个 View 和一个成员(member)卡的 UIImageView。我将 ViewController 的类设置为我的 MembershipViewController。

一旦出现,我会一触即消。

谁能告诉我我错过了什么?我认为我的所有步骤都是正确的,可以展示 View Controller 。

感谢您的帮助。



Best Answer-推荐答案


在 MembershipCardViewController 的 nib 文件中,它的 View (它所控制的任何 View )连接到 View Controller 的 View 导出。

enter image description here

要执行此控制,请从文件所有者拖动到要连接到的 View (本例中为灰色 View )

enter image description here

你应该得到这个:

enter image description here

文件所有者应指向您的 MembershipCardViewController。每个 View Controller 都有一个指向 View 的指针。我猜你在删除库存后添加了一些自定义 View 。控制从文件所有者拖动到该 View 以制作 socket 。 (如果这个导出返回 nil,就会抛出异常)。

为了安全起见,请确保文件的所有者(在 nib 中)指向 MembershipCardViewController (这可能不是问题,但听起来您可能是从一个空 Nib 开始的)。

enter image description here

为此,请单击文件所有者,然后选择右侧的身份检查器。确保类说 MembershipCardViewController

我之前回答过另一个关于此的问题 Am I right in saying initWithNibName:bundle is used to manually load nib files and that initWithCoder would be used as an alternative?

这解释了实际发生的事情。

关于ios - 从另一个 UIViewController 呈现 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19527724/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4