【问题标题】:modal segue to a xib from a xib?从xib模态segue到xib?
【发布时间】:2015-10-27 05:13:15
【问题描述】:

我有一个只使用 xib 的应用,没有情节提要。

我已经创建了一个提示 xib,我想从表格视图控制器 xib(名为 TVC.xib)模态显示(使用模态动画) TVC 嵌套在导航控制器中。

我可以得到提示来展示自己,但我希望它通过模态动画来展示自己。不幸的是,presentModalViewController 已被弃用。在代码中以模态方式呈现视图控制器并让它以与模态演示用于动画的相同方式动画的当前选项是什么?

这是我的代码:(在 TVC.m 中)

PromptViewController *promptVC = [[PromptViewController alloc] initWithNibName:@"PromptXib" bundle:nil];
UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController:promptVC];
[self.navigationController presentViewController:navVC animated:YES completion:^{
    NSLog(@"presented prompt vc");
}];

理想情况下,我可以将第 3 行中的方法替换为 self.navigationController presentMODALViewController... 等,但它已被弃用。

【问题讨论】:

    标签: objective-c xcode uinavigationcontroller segue xib


    【解决方案1】:

    您正在寻找:

    [self presentViewController:aViewController animated:animated completion:^{}];

    但是你应该浏览一些教程来更新知识。

    【讨论】:

    • 这是不正确的。我知道我需要presentViewController: animated: completion:(请参阅上面的问题,我的代码显示了该方法)但我想知道的是如何以模态方式设置演示文稿。
    • @jungledev 这是以模态方式呈现视图的现代方法。文档“以模态方式呈现视图控制器”的第一行。所以这是完全正确的。这和你说的完全一样,只是转述了。
    • 我确实注意到了这一点,但它本身并不能正常工作——毕竟,这就是我在第一个提出这个问题的原因。您是否在未设置演示或过渡样式的情况下测试了此代码?我做到了,在我设置这两个参数之前,它不是模态转场。必须设置过渡和演示样式才能这样做 - 所以这个答案是不完整的,因为如果没有下面我的答案中的额外 2 行代码,它就无法完成我想做的事情。
    • @jungledev 所以你的意思是动画?你的问题中没有包含这个词。模态呈现意味着与使用相同动画呈现不同的东西,如旧的模态呈现。我宁愿说你的问题与你真正想要的无关。
    【解决方案2】:

    我想通了。我需要在要显示的视图控制器上设置过渡样式和演示样式。这是我的解决方案:

    PromptViewController *promptVC = [[PromptViewController alloc] initWithNibName:@"PromptXib" bundle:nil];
    promptVC.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    promptVC.modalPresentationStyle = UIModalPresentationFullScreen;
    [self presentViewController:promptVC animated:YES completion:nil];
    

    【讨论】:

      猜你喜欢
      • 2016-06-05
      • 2012-06-30
      • 2019-03-17
      • 2015-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-26
      • 1970-01-01
      相关资源
      最近更新 更多