【发布时间】:2014-06-13 12:18:35
【问题描述】:
调用presentViewController时出错
它的行为好像与约束有关,但即使我删除所有约束,它仍然会发生。
导致崩溃的代码行是:[[self sourceViewController] presentViewController:[self destinationViewController] animated:NO completion:nil];
只有当设备是横向时,错误才会爆发,但是在纵向调用这条线时,一切正常。
我得到的错误是:
*** Assertion failure in -[UIView _edgeExpressionInContainer:vertical:max:], /SourceCache/UIKit/UIKit-2935.137/NSLayoutConstraint_UIKitAdditions.m:2815
请记住,这是 segue 类的最后一行。
编辑:到目前为止,似乎错误可能在这一行:self.view setTranslatesAutoresizingMaskIntoConstraints:NO]; 在源视图控制器中。
但是,出于设计目的,这条线对于汇总视图至关重要。与此相关的整个代码块在这里:
[refreshNotes setAutoresizingMask:(UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleLeftMargin)];
[[refreshNotes.subviews objectAtIndex:0] setFrame:CGRectMake(refreshNotes.bounds.origin.x, 17, refreshNotes.bounds.size.width, refreshNotes.bounds.size.height)];
[[refreshNotes.subviews objectAtIndex:0] setTintColor:[UIColor colorWithRed:95.0/255.0 green:49.0/255.0 blue:187.0/255.0 alpha:1]]; // lighter purple so it doesn't appear black
[self.view setTranslatesAutoresizingMaskIntoConstraints:NO];
【问题讨论】:
-
通常断言失败伴随着描述原因的附加文本。在这种情况下是否有任何此类附加文字?
-
如果您查看@kuchumovn 答案here,这是与您的问题相同的解决方案,作为对稍微不同的问题的答案,他说拥有 [self.view setTranslatesAutoresizingMaskIntoConstraints:NO]; 在他的目标 VC 中搞砸了 segue。
-
Hot Licks:不。这是我唯一得到的(除了
lldb) rdurand:我的源视图控制器中有这条线,但是对于某些设计来说这是必需的。我将在答案编辑中发布整个代码块。
标签: ios objective-c segue transitions presentviewcontroller