Cocoa touch 为什么[self superview].center不引用中心?

Cocoa touch 为什么[self superview].center不引用中心?,cocoa-touch,uiview,Cocoa Touch,Uiview,此代码: m_networkActivityView = [[[NSBundle mainBundle] loadNibNamed:@"NetworkActivityView" owner:self options:nil] objectAtIndex:0]; [self addSubview:m_networkActivityView]; m_networkActivityView.center = self.center; m_networkActivityView.hidden = tru

此代码:

m_networkActivityView = [[[NSBundle mainBundle] loadNibNamed:@"NetworkActivityView" owner:self options:nil] objectAtIndex:0];
[self addSubview:m_networkActivityView];
m_networkActivityView.center = self.center;
m_networkActivityView.hidden = true;
给我这个,它偏离中心,因为它在桌子上居中,而不是在屏幕上:

而这个代码

m_networkActivityView = [[[NSBundle mainBundle] loadNibNamed:@"NetworkActivityView" owner:self options:nil] objectAtIndex:0];
[self addSubview:m_networkActivityView];
m_networkActivityView.center = [self superview].center;
m_networkActivityView.hidden = true;
给我这个:


我真的不明白。

我检查了评论中推荐的
超级视图,它是
null
,这就是它出现在角落里的原因。所以我做了这个来修复它:

m_networkActivityView.center = 
    CGPointMake([UIScreen mainScreen].bounds.size.width / 2,
    [UIScreen mainScreen].bounds.size.height / 2);

通过以下方式检查超级视图的类:NSLog(@“%@,[[self superview]class]);看看为什么。。你还想让它在navigationcontroller之上吗?它不一定要在navigationcontroller之上。superview为空,因此可以解释这一点。谢谢