その中に他のいくつかのUIViewをロードする1つのUIViewControllerがあります
情報 :
- UIViewController には .xib がなく、UIView を制御してロードするだけです。
- UIViews : .xib によってロードされます (必要なすべての UIView に同じ .xib を再利用しています) <<問題??
- UIViews : 自動レイアウトは .xib にあります
最初に1つのビューをロードし、1つのアクションボタンでメソッドを再度呼び出して別のビューをロードすると、自動レイアウトが消えます...しかし、最初は正しいです(オンになっています)。
ロードに使用する方法
+ (UIView *) loadUIViewFromNibNamed:(NSString *)nibName withRestorationIdentifier:(NSString *)restorationIdentifier{
UIView *view = nil;
NSArray *items = [[NSBundle mainBundle] loadNibNamed:nibName owner:self options:nil];
for(id item in items) {
if ([item isKindOfClass:[UIView class]] == TRUE) {
UIView * viewTemp = item;
if ([viewTemp.restorationIdentifier isEqualToString:restorationIdentifier]) {
view = item;
break;
}
}
}
NSAssert1(view, @"Expected nib named %@ to contain a UIView", nibName);
return view;
}
質問 : 自動レイアウトが最初にロードされたビューでのみ OK になるのはなぜですか? 自動レイアウトをリセットまたは更新できるものは何でもあります。