说明:我有一个包含NavigationBar和UIWebView的viewcontroller. webview在.m文件中设置为全屏.在视图控制器上,导航栏布置在前面.
会发生什么:当我运行应用程序时,唯一可见的是webview(全屏),但导航栏不在那里.
假设发生了什么:这是不言自明的,但导航栏假设在其下面是webview的顶部.
它看起来像什么
.m文件
#import "SecondViewController.h" @interface ViewController2 () @end @implementation ViewController2 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view,typically from a nib. UIWebView *webview2=[[UIWebView alloc]initWithFrame:CGRectMake(0,self.view.frame.size.width,self.view.frame.size.height)]; NSString *url2=@"http://bithumor.co/server/trending/index1.PHP"; NSURL *nsurl2=[NSURL URLWithString:url2]; NSURLRequest *nsrequest2=[NSURLRequest requestWithURL:nsurl2]; [webview2 loadRequest:nsrequest2]; webview2.scrollView.bounces = NO; [self.view addSubview:webview2]; @end
.h文件
#import <UIKit/UIKit.h> @interface ViewController2 : UIViewController @end
问题/问题:导航栏不可见,如何解决这个问题,以便webview和导航栏都可见?
解决方法
所以,我可以复制你可能遇到的事情,我已经完成了两个项目,你可以看到它们.这是一些屏幕截图,但首先我正在使用的代码就是你的代码:
>创建单页面应用程序
>替换视图确实加载了您的视图加载
以下是使用带有代码的导航栏和带有导航栏的代码的结果,如下所示:
你可以在这里下载这个项目:http://www18.zippyshare.com/v/DXi9wySi/file.html
扩展布局(您拥有相同的结果):
故事板布局:
因此,鉴于上面的截图和导航栏被放置在我们的Web视图后面,部分是由于我没有导航控制器来控制我的视图控制器所以导航栏的位置完全没用并且不会出现在屏幕上.此外,如果导航栏确实显示,则导航栏甚至不会执行任何操作,因为层次结构中没有导航控制器.
现在,给出第一个例子,这是一个修正.
这与上面的布局相同,但不同之处在于我将视图控制器植根在导航控制器中……一切都保持不变,事实上,我甚至没有向故事板添加导航栏,因为这是由导航控制器的视图控制器的生根生成的自动.
您可以下载此项目:http://www41.zippyshare.com/v/aXRlAT3a/file.html
扩展布局:
故事板布局:
所以,这里的区别在于,我在导航控制器中支持视图控制器.
结论:
很可能你遇到的问题与我上面解释的问题完全不同,但是使用你的代码,我能够获得与你在第一个例子中相同的结果.在我的第二个例子中,我能够使用Web视图,就像您在代码中显示的那样,事实上我在第二个示例中有一个导航栏.我在第二个例子中唯一改变的是在导航控制器中生成视图控制器.