1

在以下设置中,Button 1调用First VCButton 2调用Second VC

在此处输入图像描述

目前,我使用以下代码SecondVC通过点击来调用Button 2

主VC.m

@implementation MainVC()
....

UINavigationController *navController = [self.childViewControllers objectAtIndex:0];
SecondVC *secondVC = [self.storyboard instantiateViewControllerWithIdentifier:@"second"];
[navController pushViewController:secondVC animated:YES];

上面的代码显示SecondVC得很好。但是,在First VC出现“第二个 VC”之前需要执行的某些语句被跳过了!

First VC我在里面执行这些语句-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender。当在Next中点击 Button 时First VC,所有语句都会执行,因为它prepareForSegue在呈现之前触发SecondVC。使用上述代码时跳过此步骤。

额外信息:
A)虽然我的应用程序中的Navigation Controller,Main VC没有在我的应用程序中显示导航栏。我相信这会违反 HIG 在 iPhone 上显示两个导航栏。我在这里展示它以识别主要 VC。
B) FirstVC中有用户填写的文本字段。如果我只是复制代码,它会从 textFields.text 读取并保存数据吗?

问题:我如何prepareForSegue从轻按时拨打电话?还是有另一种方法? First VCButton 2MainVC

4

1 回答 1

0

您可以尝试以下方法:

UINavigationController *navController = [[self childViewControllers] objectAtIndex:0];
UIViewController *vc = [navController topViewController]
if ([vc isKindOfClass:[FirstVC class]]) {
    FirstVC *firstVC = (FirstVC *)vc;
    SecondVC *secondVC = [[self storyboard] instantiateViewControllerWithIdentifier:@"second"];
    // Copy and read data from [[firstVC textField] text] to secondVC.
    [navController pushViewController:secondVC animated:YES];
}
于 2013-10-22T04:00:45.340 回答