只是一个简单的应用
我创建了两个UIViewController
,名为A和B.
appDelegate中的代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
A * a = [[A alloc] initWithNibName:@"A" bundle:nil];
UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:a];
[self.window setRootViewController:nav];
[self.window makeKeyAndVisible];
return YES;
}
ViewController A中的代码
- (void)goB {
B * b = [[B alloc] initWithNibName:@"B" bundle:nil];
[[self navigationController] pushViewController:b animated:YES];
}
- (void)viewDidLoad {
[super viewDidLoad];
// [[[self navigationController] navigationBar] setHidden:YES]; // i guess this line make a problem
[[self navigationController] setNavigationBarHidden:YES];
UISwipeGestureRecognizer * s = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(goB)];
[s setDirection:UISwipeGestureRecognizerDirectionLeft];
[[self view] addGestureRecognizer:s];
}
ViewController B中没有代码,但我将UITableView
放入B.xib
然后,如果我写
[[[self navigationController] navigationBar] setHidden:YES].
B中的tableView无法正常工作,我无法滚动它
但如果我删除这一行,它就可以了
还有另一个问题。当我添加UITableView
数据源和委托时
@interface D : NSObject <UITableViewDataSource, UITableViewDelegate>
@implementation D
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 4;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell * cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
[[cell textLabel] setText:@"123"];
return cell;
}
我又犯了一个错误。
libobjc.A.dylib`objc_msgSend:
0x37dd3fac: teq.w r0, #0
0x37dd3fb0: beq 0x37dd3fee ; objc_msgSend + 66
0x37dd3fb2: push.w {r3, r4}
0x37dd3fb6: ldr r4, [r0]
0x37dd3fb8: lsr.w r9, r1, #2
0x37dd3fbc: ldr r3, [r4, #8]
0x37dd3fbe: add.w r3, r3, #8
0x37dd3fc2: ldr r12, [r3, #-8]
0x37dd3fc6: and.w r9, r9, r12
0x37dd3fca: ldr.w r4, [r3, r9, lsl #2]
0x37dd3fce: teq.w r4, #0
0x37dd3fd2: add.w r9, r9, #1
0x37dd3fd6: beq 0x37dd3fea ; objc_msgSend + 62
0x37dd3fd8: ldr.w r12, [r4]
0x37dd3fdc: teq.w r1, r12
0x37dd3fe0: bne 0x37dd3fc2 ; objc_msgSend + 22
0x37dd3fe2: ldr.w r12, [r4, #8]
0x37dd3fe6: pop {r3, r4}
0x37dd3fe8: bx r12
0x37dd3fea: pop {r3, r4}
0x37dd3fec: b 0x37dd3ff4 ; objc_msgSend_uncached
0x37dd3fee: mov.w r1, #0
0x37dd3ff2: bx lr
答案 0 :(得分:0)
使用此
[self.navigationController setNavigationBarHidden:YES];
而不是
[[[self navigationController] navigationBar] setHidden:YES].
答案 1 :(得分:0)
您也可以尝试使用
[[[self navigationController] topViewController] setNavigationBarHidden:YES]