Ios 在上一个视图的顶部打开情节提要
我已经创建了要在另一个视图或childView中打开的情节提要,以便在关闭或销毁该情节提要视图时,打开情节提要的早期视图保持不变 当我运行以下代码时:-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
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];
}