Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS情节提要UIViewController切换回&;向前地_Ios_Objective C_Uiviewcontroller - Fatal编程技术网

iOS情节提要UIViewController切换回&;向前地

iOS情节提要UIViewController切换回&;向前地,ios,objective-c,uiviewcontroller,Ios,Objective C,Uiviewcontroller,应用程序情节提要的基本设计如下: 顶层#1 导航控制器-->视图控制器(前)包含“显示主控”按钮 下一级#2 导航控制器-->视图控制器(主)-->推送-->视图控制器(详细信息) 当我在模拟器中运行应用程序时,会出现“前视图控制器”页面 要求:在“ShowMaster”按钮上单击,我希望控件集中在Master上。在此处完成某些操作后,可以显示详细视图控制器,也可以返回到前视图控制器。如何从Front.M和Master.M对其进行编码 设置:iOS 6.x,XCode 5.x 注意:下面的代码存

应用程序情节提要的基本设计如下:

顶层#1 导航控制器-->视图控制器(前)包含“显示主控”按钮

下一级#2 导航控制器-->视图控制器(主)-->推送-->视图控制器(详细信息)

当我在模拟器中运行应用程序时,会出现“前视图控制器”页面

要求:在“ShowMaster”按钮上单击,我希望控件集中在Master上。在此处完成某些操作后,可以显示详细视图控制器,也可以返回到前视图控制器。如何从Front.M和Master.M对其进行编码

设置:iOS 6.x,XCode 5.x 注意:下面的代码存在于前面的.M中,但它不起作用,以黑色显示母版页

vwMaster *vc = [[vwMaster alloc] init];
vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:vc animated:YES completion:NULL];

有什么想法吗?

看起来您已经完成了大部分工作,但是
vwMaster
没有与之相关的布局信息。一种方法是创建一个与视图控制器类同名的.xib文件(即vwMaster.xib),并将xib文件的所有者设置为
vwMaster
。您现有的代码应该可以工作

不过,您似乎在使用情节提要,在这种情况下,您有几个选项:

  • 最简单的选择。在情节提要中,按ctrl键从“前视图”控制器中的按钮拖动到“主视图”控制器。选择一个模态序列类型

  • 通过在序列图像板中的前视图控制器和主视图控制器之间按住ctrl键拖动,在属性检查器中为该控制器创建一个模式序列,并在代码中触发该序列:

    [self performSegueWithIdentifier:@"vwMaster" sender:self];
    
  • 在序列图像板中的标识检查器中为vwMaster view控制器本身指定一个标识符,并像以前一样呈现:

    vwMaster *vc = (vwMaster *)[self.storyboard instantiateViewControllerWithIdentifier:@"vwMaster"];
    vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentViewController:vc animated:YES completion:NULL];
    
  • 无论选择哪种路线,您都可能希望使用代理模式关闭视图控制器。为此,我建议您阅读相关的苹果文档:


    如果您使用navigationcontroller,您是否不使用推送和弹出而不是显示viewController

    谢谢knell

    我一直在玩不同的流程。我可以通过呼叫转到查看

    [self performSegueWithIdentifier:@"name" sender:self] - provided  name'm. 
    
    还具有强大的代码处理功能—在数据需要传递的情况下

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        //NSLog(@"prepareForSegue: %@", segue.identifier);
        if ([[segue identifier] isEqualToString:@"name"])
        {
        }
    }