Iphone 添加到导航控制器时,UIWebView“衰减”为UIView
我正在开发一个简单的iPhone应用程序原型,在这个原型中,从UITableView中选择的内容会将用户带到显示某些内容的UIWebView。我的项目基于基于导航的应用程序模板,因此我有一个UINavigationController管理流程。问题是,当我将UIWebView添加到导航堆栈时,它似乎变成了一个通用的UIView,使我无法向它发送任何基于URL的内容 在Interface Builder中,我将UIViewController添加到项目中,将其类更改为DocViewController,并将UIWebView拖放到其中。DocViewController的视图出口指向UIWebView 选择UITableView中的项目后,我会在堆栈上推送DocViewController:Iphone 添加到导航控制器时,UIWebView“衰减”为UIView,iphone,uiwebview,Iphone,Uiwebview,我正在开发一个简单的iPhone应用程序原型,在这个原型中,从UITableView中选择的内容会将用户带到显示某些内容的UIWebView。我的项目基于基于导航的应用程序模板,因此我有一个UINavigationController管理流程。问题是,当我将UIWebView添加到导航堆栈时,它似乎变成了一个通用的UIView,使我无法向它发送任何基于URL的内容 在Interface Builder中,我将UIViewController添加到项目中,将其类更改为DocViewControll
NSLog(@"selected the row, creating the DocViewController");
DocViewController *docViewController = [[DocViewController alloc] init];
[self.navigationController pushViewController:docViewController animated:YES];
[docViewController release];
我正在查看viewDidLoad处的视图出口,ViewWill将显示NSLog语句:
NSLog(@"at viewDidLoad have view as %@", [self view]);
NSLog(@"at viewWillAppear have view as %@", [self view]);
到目前为止还不错。。。我想。当应用程序启动时,DocViewController获取viewDidLoad,我看到:
at viewDidLoad have view as <UIWebView: 0xd21db0; frame = (0 20; 320 460);...
但是,当我从表视图中选择一个项目时,会再次调用viewDidLoad,然后调用ViewWillDisplay,我得到以下结果:
at viewDidLoad have view as <UIView: 0xd164e0; frame = (0 20; 320 460);...
at viewWillAppear have view as <UIView: 0xd164e0; frame = (0 0; 320 416);...
因此,控制器在预加载时有一个UIWebView,但当它实际被推到堆栈上时,它有一个UIView
我觉得我在这里误解了一些基本的东西,或者走错了路,或者两者兼而有之。有人能在这里建议正确的模式吗,或者指出我歪了的地方吗?非常感谢 您可以尝试将UIWebView添加为控制器中主UIView的子视图。我也有同样的问题。如果我将ViewController的视图出口设置为UIWebView,它将不起作用。但是web视图作为视图的子视图可以很好地工作。 有什么特别的原因吗,有人知道吗? 苹果的文档只说 重要提示:您不应该嵌入 中的UIWebView或UITableView对象 UIScrollView对象。如果你这样做, 可能导致意外行为,因为 两个对象的触摸事件可以 被混淆和错误处理