我是iOS编程的新手,我正在尝试制作一个ipad应用程序,该应用程序以顶部的容器视图开头,该视图具有常规视图控制器,顶部带有“横幅”,并带有几个按钮和一个拆分视图控制器底部。
我希望此顶部横幅上的按钮能够触发拆分视图控制器中的细节部分以返回主页面,使其看起来与应用程序运行时最初的启动方式相同。
这是应用程序在模拟器中的图片,显示顶部横幅,下面有拆分视图控制器以及我想要“返回主页”功能的按钮。此函数将详细信息部分从表视图返回到原始集合视图
这是故事板外观的图片。您可以看到详细视图具有嵌入到集合视图的segue。按下主视图控制器上的按钮时,详细视图将从集合视图中分割为表视图。
如何将按钮设置为我的详细视图到原始集合视图?
我尝试通过按下按钮然后调用dismissViewController来进行NSNotificationCenter调用。我在家庭集合视图控制器和表视图控制器中都尝试过它。在前者中,它甚至没有从通知中调用选择器。在后者中,它没有解雇视图控制器。
我尝试在主集合视图控制器中进行展开segue操作,然后将“目录”按钮附加到该segue,但这似乎也没有任何效果。
您是否有任何其他建议我可以遵循或者澄清我是如何做出错误的上述策略之一以及如何纠正它?
答案 0 :(得分:0)
这一切只取决于你如何创建segue,如果你有一个模态segue你可以解雇视图控制器:
[self dismissViewControllerAnimated:YES completion:nil];
如果你有像你的图片一样的导航segue你可以使用一个稍微不同的方法调用:
[self.navigationController popViewControllerAnimated:YES];
或者如果您想转到根视图控制器,请使用[self.navigationController popRootViewControllerAnimated:YES];
答案 1 :(得分:0)
我找到了一个解决方案,但如果您知道一个更有效的解决方案,请随时发表评论/回答。
1)我去故事板并从表视图控制器创建了一个segue到主集合视图控制器
2)我在表视图控制器
中创建了如下方法- (void)returnHome {
NSLog(@"Ran returnHome");
[self performSegueWithIdentifier:@"segueHome" sender:self];
}
3)我创建了NSNotificationCenter的东西。
一个。在表视图控制器中我添加了viewDidLoad方法:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(returnHome) name:@"returnHome" object:nil];
B中。在表视图控制器中,我添加了以下方法:
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"returnHome" object:nil];
}
℃。在横幅视图控制器中,我添加了以下内容并将其连接到“目录”按钮
-(IBAction)returnHome:(id)sender {
[[NSNotificationCenter defaultCenter] postNotificationName:@"returnHome" object:nil];
}
当我点击目录时,这应该会让我回家。