dismissModalViewControllerAnimated
:首先在iOS
6.0
Xcode
是5.1。答案 0 :(得分:28)
如果我是对的,你只想抑制警告。
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
这只是为了抑制警告。在发布版本中,您不应使用任何已弃用的函数。
编辑:要取消调用警告的特定代码,请使用:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[self dismissModalViewControllerAnimated:YES];
#pragma clang diagnostic pop
答案 1 :(得分:2)
@ n00bProgrammer感谢您的回答。
对于我们这些仍然拥有支持早期版本iOS的代码的人来说,我处理这些旧代码的方法是将旧代码包装在版本宏测试中,以及抑制导致的编译器警告。
请注意,有时不推荐使用的商品会生成隐式转化警告,需要使用“-Wconversion”进行抑制。
if (SYSTEM_VERSION_LESS_THAN(@"6.0")) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#pragma clang diagnostic ignored "-Wconversion"
[controlCenter.label setLineBreakMode:UILineBreakModeWordWrap];
#pragma clang diagnostic pop
} else {
[controlCenter.label setLineBreakMode:NSLineBreakByWordWrapping];
}
您可以在此处找到旧版Objective-C代码的版本检查器:SYSTEM_VERSION_LESS_THAN()
您可以在此处找到新的Swift和Objective-C代码的版本检查器:Swift and Objective-C version check past iOS 8
答案 2 :(得分:1)
使用
[self presentViewController:loginController animated:YES completion:nil];
或
[self presentModalViewController:loginController animated:YES];
或
[self dismissViewControllerAnimated:NO completion:nil];
答案 3 :(得分:0)
使用以下代码,它完美无缺
[self dismissViewControllerAnimated:YES completion:nil];
经过测试并正常工作。
:)