我有一个名为 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-推荐答案 strong>
在 MembershipCardViewController 的 nib 文件中,它的 View (它所控制的任何 View )连接到 View Controller 的 View 导出。
要执行此控制,请从文件所有者拖动到要连接到的 View (本例中为灰色 View )
你应该得到这个:
文件所有者应指向您的 MembershipCardViewController。每个 View Controller 都有一个指向 View 的指针。我猜你在删除库存后添加了一些自定义 View 。控制从文件所有者拖动到该 View 以制作 socket 。 (如果这个导出返回 nil,就会抛出异常)。
为了安全起见,请确保文件的所有者(在 nib 中)指向 MembershipCardViewController
(这可能不是问题,但听起来您可能是从一个空 Nib 开始的)。
为此,请单击文件所有者,然后选择右侧的身份检查器。确保类说 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/
|