我有两个视图控制器,其中一个是另一个的子视图。两个视图都是通过 nibs 加载的。子视图控制器将其位置设置在viewDidLoad
父视图控制器中。当父视图控制器设置为 UIWindow 的根视图控制器时,它会将子视图控制器的视图的位置重置回{0.0, 0.0}
.
我知道它是窗口,因为我决定观察子视图控制器的视图的框架并添加了一个断点(观察者是父视图控制器)。堆栈跟踪报告返回:
#0 0x000d34e0 in -[ParentViewController observeValueForKeyPath:ofObject:change:context:]
#1 0x32866eb0 in NSKeyValueNotifyObserver ()
#2 0x32866b0a in NSKeyValueDidChange ()
#3 0x32840eca in -[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] ()
#4 0x39b87d9e in -[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] ()
#5 0x39b4075e in -[UIView(Internal) _didMoveFromWindow:toWindow:] ()
#6 0x39b405be in -[UIView(Internal) _didMoveFromWindow:toWindow:] ()
#7 0x39b3ae4a in -[UIView(Hierarchy) _postMovedFromSuperview:] ()
#8 0x39b227dc in -[UIView(Internal) _addSubview:positioned:relativeTo:] ()
#9 0x39b222c2 in -[UIView(Hierarchy) addSubview:] ()
#10 0x39b7fe42 in -[UIWindow addRootViewControllerViewIfPossible] ()
#11 0x39b7bae4 in -[UIWindow _setHidden:forced:] ()
如果我不打算将位置设置在viewDidLoad
我打算设置的位置?
更新:
我以为只是改变了位置,但是通过相同的路径,正在设置尺寸。在笔尖中,它设置为横向尺寸,但框架设置为纵向尺寸{0.0, 0.0}
。