Ios 在上一个视图的顶部打开情节提要

Ios 在上一个视图的顶部打开情节提要,ios,objective-c,iphone,xcode,uiviewcontroller,Ios,Objective C,Iphone,Xcode,Uiviewcontroller,我已经创建了要在另一个视图或childView中打开的情节提要,以便在关闭或销毁该情节提要视图时,打开情节提要的早期视图保持不变 当我运行以下代码时:- UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPad" bundle:nil]; ViewController *detailViewController = [storyboard instantiateViewControllerWithIdentif

我已经创建了要在另一个视图或childView中打开的情节提要,以便在关闭或销毁该情节提要视图时,打开情节提要的早期视图保持不变

当我运行以下代码时:-

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPad" bundle:nil];
ViewController *detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"neolick"];
[[UIApplication sharedApplication].keyWindow setRootViewController:detailViewController];
首先,故事板打开了,但我不知道它是在前一个视图的顶部打开还是破坏了前一个视图&然后打开。 其次,故事板上需要的功能会自动运行,这是我想要的,但这些功能是如何工作的

如果有人能帮助我理解上述代码及其工作原理

注意:由于某些原因,我无法在相同状态下再次调用早期视图


提前谢谢

您正在设置根视图控制器

它不会保留您的后屏幕,因为它是您想要的

如果您想保持当前屏幕并在该屏幕上显示其他屏幕

你有两种方法

1) 当前视图控制器 2) 推式视图控制器

1) 当前视图控制器

为此,您可以在其他可见屏幕的顶部显示您的屏幕

比如说

- (IBAction)btnNextTapped:(id)sender {
     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPad" bundle:nil];
     ViewController *detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"neolick"];
     [self presentViewController:detailViewController animated:true completion:nil]

 }
2) 推式视图控制器

为此,您需要
NavigationController
,并且需要从当前可见屏幕推送
ViewController

i、 e

编辑

根据讨论,您需要找到当前的俯视图控制器,然后您应该展示它

将此方法添加到您的方法下面

- (UIViewController*) topMostController
{
UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;

while (topController.presentedViewController) {
    topController = topController.presentedViewController;
}

return topController;
}
并用代码替换此方法

- (void)goToNewPage:(CDVInvokedUrlCommand*)command 
    { 
       UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPad" bundle:nil]; 
     ViewController *detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"neolick"]; 

      [[self topMostController] presentViewController:detailViewController animated:true completion:nil]; 
       }

谢谢你的回复。。。我收到错误“No visible@interface声明选择器presentViewController:animated:compilation”[self.navigationController pushViewController:vc animated:true];当我使用此代码时,我会得到“在类型的对象上找不到属性navigationcontroller”错误,您将此代码放在哪里,同样重要的是,您需要从何处显示viewcotnroller?我正在项目的子目录中使用此代码。我必须为此导入一些东西吗?子目录,是什么,让我知道您需要在哪个操作上显示
detailViewController
,比如点击按钮或点击tablecell?
- (void)goToNewPage:(CDVInvokedUrlCommand*)command 
    { 
       UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPad" bundle:nil]; 
     ViewController *detailViewController = [storyboard instantiateViewControllerWithIdentifier:@"neolick"]; 

      [[self topMostController] presentViewController:detailViewController animated:true completion:nil]; 
       }