状况描述:1、首次进入该界面时正常
2、push了新的界面后,再返回该界面
tableview和导航栏直接出现了间隔区域
tableview为代码创建
_tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, SCREEN_HEIGHT-114) style:UITableViewStylePlain];
然后addSubview添加的
问题分析:iOS 7 viewcontroller新增属性automaticallyAdjustsScrollViewInsets,即是否根据按所在界面的navigationbar与tabbar的高度
解决方法:
if ([self respondsToSelector:@selector(automaticallyAdjustsScrollViewInsets)])
{
//关闭自动调整
self.automaticallyAdjustsScrollViewInsets = NO;
}
ps:
- -(BOOL) isKindOfClass: classObj 用来判断是否是某个类或其子类的实例
- -(BOOL) isMemberOfClass: classObj 用来判断是否是某个类的实例
- -(BOOL) respondsToSelector: selector 用来判断是否有以某个名字命名的方法(被封装在一个selector的对象里传递)
- +(BOOL) instancesRespondToSelector: selector 用来判断实例是否有以某个名字命名的方法. 和上面一个不同之处在于, 前面这个方法可以用在实例和类上,而此方法只能用在类上.