从故事板中的模态视图推送视图控制器

3
我正在使用Storyboard,并且有一个以模态方式呈现的屏幕,我需要从该屏幕推出其他视图控制器,以便我可以为模态视图选择项目(类似于在iPhone日历应用程序上添加条目)。所以我从以下位置开始:导航控制器> VC>模态视图控制器> ??? 在这里,我想推出一个VC,以便我可以选择一个项目返回到模态视图。

如何使这成为可能?因为我目前正在收到错误消息“仅当源控制器由UINavigationController的实例管理时,才能使用Push segues。”
啊好的,所以我现在已经按照您的建议设置好了,但是在尝试使用以下内容设置视图控制器上的属性时(之前我使用的是push controller),我现在遇到了错误:
SetTransactionDateViewController *stdvc = (SetTransactionDateViewController *)[segue destinationViewController]; 
// Get the day to pass to the select date controller
stdvc.transactionDate = [Utilities convertStringToDate:cellDate.detailTextLabel.text:FORMAT_DD_MMM_YYYY]; 

":无法识别的选择器发送到实例"

“未识别的选择器”是另一个问题,与StoryBoard无关。请创建一个新问题(如果jsksma2的答案帮助您解决了原始问题,请接受其为正确答案)。 - JOM
顺便说一下,未识别的错误意味着属性transactionDate在SetTransactionDateViewController类头文件中不可见... 所以这在某种程度上与StoryBoard有关。 - JOM
你的次要错误是"[UINavigationController setTransactionDate:]: unrecognized selector sent to instance"....你正在尝试在以模态方式呈现的导航控制器上设置交易日期。在设置交易日期之前,你需要深入挖掘导航控制器以获取实际的transactiondateviewcontroller ;) - valheru
1个回答

7
当您分配模态显示的视图时,需要确保此视图嵌入在一个UINavigationViewController中。导航控制器是必需的,这样才能执行您所描述的segue。
您的故事板应该如下所示: enter image description here

模态视图已经在导航控制器中(我已编辑上面的内容)。 - Carl
你得到的错误是在说明后者。每次使用模态转场并想要执行更多的转场时,你需要一个 UINavigationViewController - jakenberg
谢谢,我现在在尝试为视图控制器设置一个值时遇到了错误(编辑原问题)。 - Carl
1
你没有正确设置选择视图控制器的代理,因此它不知道setTransactionDate应该设置为什么。虽然这是你需要在另一个问题中询问的事情。就这个问题而言,我似乎已经回答了。 - jakenberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接