代码之家  ›  专栏  ›  技术社区  ›  user6631314

IOS/Objective-C/Storyboard:阻止ViewController以模式启动

  •  0
  • user6631314  · 技术社区  · 6 年前

    我想一个viewcontroller启动使用显示转换,而不是从底部模态。通常,当我使用下面的代码时,就会发生这种情况。但是,在这种情况下,它是作为模态控制器从下往上启动的。有没有一个开关,我不知道,或者可以设置在故事板,这是导致这个风险投资启动模式从底部,而不是显示?

     UIStoryboard *storyBoard = self.storyboard;
    
        IDImportEventsOnboard *importEvents =
        [storyBoard instantiateViewControllerWithIdentifier:@"importEventsOnboard"];
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController: importEvents];
    
        [self presentViewController:nav animated:YES completion: nil];
    

    VC嵌入到导航控制器中。

    我应该直接使用showViewController到targetVC而不通过导航吗?或者一个pushViewController什么是一个合适的,健壮的方式来显示一个VC与显示转换?

    提前谢谢你的建议。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Jason Silver    6 年前

    在上面的代码中,您正在从ViewController“呈现”一个新的NavigationController。为了进行push/show转换,这需要在NavigationController的实例上完成。如果当前ViewController已在NavigationController中,则可以将新ViewController推送到当前NavigationController堆栈上。例如:

    UIStoryboard *storyBoard = self.storyboard;
    
    IDImportEventsOnboard *importEventsVC =
    [storyBoard instantiateViewControllerWithIdentifier:@"importEventsOnboard"];
    
    [self.navigationController pushViewController:importEventsVC animated:YES];