Objective c iPad返回主页按钮

Objective c iPad返回主页按钮,objective-c,ipad,uisplitviewcontroller,uistoryboardsegue,Objective C,Ipad,Uisplitviewcontroller,Uistoryboardsegue,我是iOS编程新手,我正在尝试制作一款ipad应用程序,它的顶部是一个容器视图,上面有一个常规视图控制器,上面有一个“横幅”,底部有几个按钮和一个拆分视图控制器 我希望在这个顶部横幅上有一个按钮来触发split view controller中的细节部分返回到主页面,这样它看起来就像应用程序运行时最初启动的那样 下面是模拟器中应用程序的图片,显示了顶部横幅,下面是拆分视图控制器以及我希望具有“返回主页”功能的按钮。此函数将把明细部分从表视图返回到原始集合视图 下面是故事板的外观图片。您可以看到,

我是iOS编程新手,我正在尝试制作一款ipad应用程序,它的顶部是一个容器视图,上面有一个常规视图控制器,上面有一个“横幅”,底部有几个按钮和一个拆分视图控制器

我希望在这个顶部横幅上有一个按钮来触发split view controller中的细节部分返回到主页面,这样它看起来就像应用程序运行时最初启动的那样

下面是模拟器中应用程序的图片,显示了顶部横幅,下面是拆分视图控制器以及我希望具有“返回主页”功能的按钮。此函数将把明细部分从表视图返回到原始集合视图

下面是故事板的外观图片。您可以看到,详图视图有一个到集合视图的嵌入段。按下主视图控制器上的按钮时,局部视图将从集合视图切换到表视图

如何将“详细信息”视图的按钮设置为“原始集合”视图

我尝试通过按下按钮然后调用dismissViewController来调用NSNotificationCenter。我在home collection视图控制器和table视图控制器中都进行了尝试。在前者中,它甚至没有从通知中调用选择器。在后者中,它没有关闭视图控制器

我试着在主集合视图控制器中执行一个“展开序列”操作,然后将“目录”按钮附加到该序列上,但这似乎也没有任何效果


您是否有任何其他建议我可以遵循或可能澄清我是如何错误地执行上述策略之一以及如何纠正它的?

这完全取决于您是如何创建segue的,如果您有一个模式segue,您可以使用以下命令关闭视图控制器: [自我解除视图控制器激活:是完成:无]

如果您有一个像图片一样的导航序列,您可以使用稍微不同的方法调用:
[self.navigationController PopViewControllerInitiated:是];或者,如果要转到根视图控制器,请使用[self.navigationController popRootViewControllerAnimated:YES]

我想出了一个解决办法,但如果你知道一个更有效的办法,请随意评论/回答

1我转到情节提要,创建了一个从表视图控制器到主集合视图控制器的序列

- (void)returnHome {
    NSLog(@"Ran returnHome");
    [self performSegueWithIdentifier:@"segueHome" sender:self];
}
我在详细信息窗格中将其替换为segue,并将其命名为segueHome 2我在表视图控制器中创建了如下方法

- (void)returnHome {
    NSLog(@"Ran returnHome");
    [self performSegueWithIdentifier:@"segueHome" sender:self];
}
3我创建了NSNotificationCenter的东西

A.在我在viewDidLoad方法中添加的表视图控制器中:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(returnHome) name:@"returnHome" object:nil];
B.在表视图控制器中,我添加了以下方法:

- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"returnHome" object:nil];
}
c。在横幅视图控制器中,我添加了以下内容并将其连接到“目录”按钮

-(IBAction)returnHome:(id)sender {
    [[NSNotificationCenter defaultCenter] postNotificationName:@"returnHome" object:nil];
}

现在,当我单击“目录”时,这些信息将一起返回我的家。

嗨,泰勒,谢谢你的帮助。我的基础不是导航视图,而是主细节拆分视图。segue是该视图中的嵌入segue和主集合视图中的模态segue。我在table controller中尝试了您建议的两种方法,但都没有效果。您知道一种通过编程偶然在详细视图上运行replace segue的方法吗?您需要在.storyboard文件中命名您尝试分段到的视图控制器,完成后,您可以通过编程方式创建该控制器的模式分段。您需要声明视图控制器:UIStoryboard*mainStoryboard=self.storyboard;UIViewController*vc=[MainstryBoard实例化ViewController的标识符:@nameOfViewInStoryboard];[self-presentModalViewController:vc动画:是];