0

我提前为 n00b 问题道歉。我刚刚开始使用 iOS!

我正在尝试将 webViewController 推送到导航控制器上。

mudWebViewController *webViewController = [[mudWebViewController alloc] initWithNibName:nil bundle:nil];
[[webViewController webView] setDelegate:webViewController];
[[self navigationController] pushViewController:webViewController animated:YES];

但这似乎不起作用,因为我在委托消息中看不到任何日志。

如果我在 viewDidLoad: 方法中设置委托,它工作正常。

我猜当时 webView 实际上并不存在,但为什么呢?如果我初始化控制器,webView不应该也被初始化吗?

viewDidLoad: 是设置这些东西的正确位置吗?

4

1 回答 1

1

initWithNibName 不应该是 nil,因为您显然正在使用 nib 文件来构建视图,否则您必须在代码中创建视图,而您不需要

mudWebViewController *webViewController = [[mudWebViewController alloc] initWithNibName:@"webViewController" bundle:nil];
[[self navigationController] pushViewController:webViewController animated:YES];

此外,任何委托都应该从 Interface builder 或 viewDidLoad 委托中的视图本身设置,而不是从前一个类设置,因为该对象可能尚未在代码中初始化,因此可能无法正确设置委托。

于 2012-06-02T23:03:11.630 回答