app storyboard的基本设计如下:
顶级#1 导航控制器 - > View Controller(Front)包含“Show Master”按钮
下一级#2 导航控制器 - > View Controller(Master) - >推 - >查看控制器(详细信息)
当我在模拟器中运行应用程序时,会出现Front View Controller页面。
要求:在“显示主人”按钮上单击,我希望控件专注于主人。完成此处的操作后,可以显示详细信息视图控制器或回摆到前视图控制器。如何从Front.M和Master.M编码。
设置:iOS 6.x,XCode 5.x. 注意:下面的代码存在于Front.M中,但它不起作用,显示黑色的母版页
vwMaster *vc = [[vwMaster alloc] init];
vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:vc animated:YES completion:NULL];
有什么想法吗?
答案 0 :(得分:1)
看起来你大部分都在那里,但是vwMaster
没有与之关联的布局信息。提供此功能的一种方法是创建一个与视图控制器类同名的.xib文件(即vwMaster.xib),并将xib文件的所有者设置为vwMaster
。您的现有代码应该可以正常工作。
看起来你正在使用Storyboard,但在这种情况下,你有几个选择:
最简单的选择。在Storyboard中,按住Ctrl键从前视图控制器中的按钮拖动到主视图控制器。选择模态segue类型。
通过在它们之间拖动来在Storyboard中的Front和Master视图控制器之间创建一个模态segue,在属性检查器中为segue提供一个标识符(例如“vwMaster”)并在代码中触发segue:
[self performSegueWithIdentifier:@"vwMaster" sender:self];
为故事板中的身份检查器中的vwMaster视图控制器本身提供一个标识符,并像以前一样呈现:
vwMaster *vc = (vwMaster *)[self.storyboard instantiateViewControllerWithIdentifier:@"vwMaster"];
vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:vc animated:YES completion:NULL];
无论您选择哪种路线,您都可能希望使用委托模式来关闭视图控制器。对于这个以及更多,我建议你阅读相关的苹果文档:
答案 1 :(得分:0)
如果你使用navigationcontroller你没有使用push和pop代替呈现viewController?
答案 2 :(得分:0)
谢谢 knellr 。
我一直在玩不同的流程。我可以通过调用
来转到视图[self performSegueWithIdentifier:@"name" sender:self] - provided name'm.
还有强大的代码处理功能 - 在需要传递数据的情况下
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
//NSLog(@"prepareForSegue: %@", segue.identifier);
if ([[segue identifier] isEqualToString:@"name"])
{
}
}