我使用Xcode 5获得上述警告,部署目标设置为iOS 5.0。
我不确定是否只是忽略这些警告,或者找到为iOS5提供此功能的替代方法。
据我所知,我有许多不完美的解决方案:
选项1:以编程方式为iOS6 +呈现MainStoryboard;使用
替换iOS5的不同故事板上的模态seguespresentViewController:animated:completion:
选项2:将完全从故事板中删除模态segue,调用IBAction方法中的任何segue
选项3:忽略警告(应用程序仍会被接受吗?)。
(是的,我知道“仅限目标iOS6 +”)
我很感激那些找到解决这个问题的方法的建议。
更新:感谢Mikael的回答如下: 我将UIStoryboardSegue子类化如下
#import "StandardModalSegue.h"
@implementation StandardModalSegue
- (void) perform {
//my conditional version of NSLog()
myLog(kLogVC, 2, @"%@ to %@",self.sourceViewController ,self.destinationViewController);
//iOS5 replacement for presentModalViewController:animated:
[self.sourceViewController presentViewController:self.destinationViewController animated:YES completion:nil];
}
@end
并在故事板中使用它
PS:接受Mikael的回答,这是为了帮助像我这样的新手!
答案 0 :(得分:1)
它是界面构建器中创建此错误的动画复选框。如果你想摆脱它并且没有为你的模态segue制作动画,你需要创建一个自定义的segue并覆盖-(void) perform
您所要做的就是保留现有的segue,但要将它们设置为自定义。然后创建UIStoryboardSegue的子类。在您执行的实现文件中:
- (void)perform
{
// Add your own animation code here.
[[self sourceViewController] presentModalViewController:[self destinationViewController] animated:NO];
}
然后您可以像任何其他segue一样使用此segue。如果它附加到UIButton,它会自动调用,您不需要performSegue。如果不是,您可以使用与iOS5兼容的performSegue,甚至可以根据操作系统的版本选择performSegue。