Dan*_*ark 6 iphone objective-c
我正在尝试做一个非常简单的UINavigationController示例.这是我的代码:
- (void)viewDidLoad {
[super viewDidLoad];
Run Code Online (Sandbox Code Playgroud)
下一行有效,或者至少不会爆炸.
navController = [[UINavigationController alloc] initWithRootViewController:self];
self.title = @"blah";
PageOneController *one = [[[PageOneController alloc]init] autorelease];
Run Code Online (Sandbox Code Playgroud)
示例1.本行没有任何内容
[navController pushViewController:one animated:NO];
Run Code Online (Sandbox Code Playgroud)
示例2.此行工作(但当然没有导航控制器)
[self.view addSubview:one.view];
}
Run Code Online (Sandbox Code Playgroud)
为什么我无法将ViewController实例推送到navController并看到屏幕更改?
注意:我意识到我的概念可能会倒退,而且我不需要让我的视图引用某个UINavigationController......或者其他东西.
epl*_*oko 13
- (void)viewDidLoad {
[super viewDidLoad];
PageOneController *one = [[[PageOneController alloc]init] autorelease];
one.title = @"blah";
navController = [[UINavigationController alloc] initWithRootViewController:one];
[self.view addSubview:navController.view];
}
Run Code Online (Sandbox Code Playgroud)
其背后的基本思想是导航控制器的根视图控制器是控制器,该视图将首先显示在导航控制器层次结构中.根控制器不是您将导航控制器插入的视图控制器.希望这可以帮助.
我只是重申 @E-ploko 的答案,这是 100% 正确的(这就是为什么我将其标记为最佳答案)。
您需要更多视图(和视图控制器)才能使用UINavigationController. 其中一个包含,UINavigationController它rootViewController是该系列的第一页(没有“背面”的那一页)。
我摆脱了代码示例的外部依赖关系:显然这是整体示例代码,而不是整体真实代码。
- (void)viewDidLoad {
[super viewDidLoad];
UIViewController *one = [[UIViewController alloc] init];
[one.view setBackgroundColor:[UIColor yellowColor]];
[one setTitle:@"One"];
navController = [[UINavigationController alloc] initWithRootViewController:one];
// here 's the key to the whole thing: we're adding the navController's view to the
// self.view, NOT the one.view! So one would be the home page of the app (or something)
[self.view addSubview:navController.view];
// one gets reassigned. Not my clearest example ;)
one = [[UIViewController alloc] init];
[one.view setBackgroundColor:[UIColor blueColor]];
[one setTitle:@"Two"];
// subsequent views get pushed, pulled, prodded, etc.
[navController pushViewController:one animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27823 次 |
| 最近记录: |