我对使用NIB文件的时间和使用代码的时间有点困惑。 这是我的问题:iPhone:笔尖文件+代码=混淆
我有一个具有RootController和它的NIB文件的导航应用程序。 RootController的NIB文件包含一个TableView。 当我点击一个单元格时,我用加载内容的请求初始化一个新的连接。 当连接完成加载我创建一个NIB文件的新postViewController(自定义)和我把它放在navigationController的viewController栈这样的:
PostViewController *postViewController = [[PostViewController alloc] initWithNibName:@"PostViewController" bundle:[NSBundle mainBundle]];
[postViewController.webView setDelegate:self];
postViewController.postContent = [[postsData objectForKey:@"post"] objectForKey:@"content"];
[self.navigationController pushViewController:postViewController animated:YES];
[PostViewController release];
然后,你可以看到我尝试设置RootViewController的作为webView的代理,以便能够拦截点击链接并在堆栈上推送新的ViewController。我需要这个新的视图来使用后退按钮的导航栏。
问题:看起来像setDelegate不工作,因为webView:shouldStartLoadWithRequest:navigationType永远不会被调用!
我想我应该在NIB文件中设置委托,但我不知道如何。从PostViewController的NIB文件并不了解RootViewController的...
下面是NIB文件的截图:
如果您需要更多细节只是问我。
非常感谢...帮助我不敲我的头一天:)
当您尝试设置委托时,您是否检查过存在postViewController.webview?我敢打赌它是零,因为视图尚未加载。如果是这样的话,你必须找到另一种方法来设置你的RootVC作为PostVC的Webview委托,就像在你的PostVC中使用一个属性一样,并且你的PostVC应该在ViewDidLoad方法中设置webview委托我认为 – scalbatty 2011-04-08 15:27:20
实际上,如果该笔尖的网点设置正确,webView不应该是零(我认为)。也许在nib文件中有问题? – 2011-04-08 15:42:26
@Luzal:你说得对,postViewController.webView是零,当我尝试将它设置为委托。我一直有这样的问题,如果你有一些建议,让我在这个问题上,我会很高兴听到他们... – teum 2011-04-11 08:14:56