那个尤里卡的时刻已经使我真正地摆脱了这个问题。我已经在代码中创建了一个NavigationController
。附加了rootviewcontroller
,它创建了tableview
(也在代码中)。这一切都按预期工作。出现tableview
,从右侧等选项加载等
然后,当我在第一个tableview
中选择一个选项来加载UIView
(没有表格,仅显示一些图像)时,这就是我正在得到的内容(啊……无法显示,因为我显然需要10个信誉才能发布图像……)叹!)。
无论如何,视图是从右侧推入的。但是,视图的内容被导航栏遮盖了(部分)。太高了。
我用来创建此问题的代码如下所示:
SearchMainTableViewController.h
#import <UIKit/UIKit.h>
#import "CRPSearchMainTableViewController.h"
@interface CRPSearchMasterViewController : UINavigationController
@property (strong, nonatomic) UINavigationController *myNavigationController;
@property (strong, nonatomic) CRPSearchMainTableViewController *myMainTableViewController;
@end
SearchMainTableViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
_myMainTableViewController = [[CRPSearchMainTableViewController alloc] initWithNibName:nil bundle:nil];
myNavigationController = [[UINavigationController alloc] initWithRootViewController:_myMainTableViewController];
[self.view addSubview:myNavigationController.view];
}
在我的SearchMainTableViewController中,我有:
#import "CRPRegistrationMasterViewController.h"
#import "CRPFixedSearchViewController.h"
#import "CRPSettingsPickerViewController.h"
@interface CRPSearchMainTableViewController : CRPRegistrationMasterViewController <UITableViewDataSource, UITableViewDelegate>
@property (strong, nonatomic) UITableView *myTableView;
@property (strong, nonatomic) CRPFixedSearchViewController *myFixed;
@property (strong, nonatomic) CRPSettingsPickerViewController *mySettingsPicker;
@end
以及SearchMainTableViewController.m的部分:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title = @"Settings";
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(loadNext)];
myTableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];
myTableView.delegate = self;
myTableView.dataSource = self;
[myTableView registerNib:[UINib nibWithNibName:@"settingsTableCell" bundle:nil] forCellReuseIdentifier:tableCell];
myParams = [self getSearchParams];
if (myParams){
NSLog(@"I have params");
} else {
NSLog(@"I don't have params");
// First time of running this
SearchParams *params = [NSEntityDescription insertNewObjectForEntityForName:@"SearchParams" inManagedObjectContext:_myManagedObjectContext];
if (params != nil)
{
NSError *paramsError = nil;
if ([_myManagedObjectContext save:¶msError])
{
NSLog(@"I have added a SearchParams field in the table");
} else {
NSLog(@"I have a problem with adding Search Params into the table: %@", [paramsError userInfo]);
}
} else {
NSLog(@"Cannot get entity");
}
}
[self.view addSubview:myTableView];
}
...
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
switch (indexPath.row) {
case 2:
{
mySettingsPicker = [[CRPSettingsPickerViewController alloc] initWithNibName:@"SettingsPicker" bundle:nil];
[self.navigationController pushViewController:mySettingsPicker animated:YES];
}
break;
CRPSettingsPickerViewController
是一个简单的控制器。我没有添加任何代码。我只是希望查看视图是否可以正确加载(由于我没有十叹的声誉,因此无法显示)。任何帮助都会很棒。我觉得我缺少一些小东西。我在任何项目中遇到的所有问题都围绕
TableViews
展开。他们是我的宿敌。干杯
最佳答案
我发现在iOS7中使用UINavigationBar时,半透明设置将导致导航视图从0,0开始,而不是通过使用64,0进行分解。如果你改变
Translucent = NO;
您的UINavigation栏不会掩盖您的新视图。我遇到过同样的问题:
Here
祝好运!
关于ios - 无法停止覆盖插入式 View 的导航栏-为什么会发生?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20961413/