Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 屏幕下方不需要的白色条_Ios_Objective C - Fatal编程技术网

Ios 屏幕下方不需要的白色条

Ios 屏幕下方不需要的白色条,ios,objective-c,Ios,Objective C,我有两个视图控制器,vc1和vc2。从vc1转到vc2,在vc2内,我使用web视图播放youtube视频。当我回到vc1时,屏幕下方会出现一个白色条。这是我的密码 /* From App Delegate to go vc1 */ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UI

我有两个视图控制器,vc1和vc2。从vc1转到vc2,在vc2内,我使用web视图播放youtube视频。当我回到vc1时,屏幕下方会出现一个白色条。这是我的密码

/* From App Delegate to go vc1 */
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    VC1 *vc1 = [[VC1 alloc] init];
    navigationController = [[UINavigationController alloc] init];
    [navigationController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [navigationController setToolbarHidden:YES];
    [navigationController setNavigationBarHidden:YES];
    [navigationController setWantsFullScreenLayout:YES];
    [navigationController pushViewController:vc1 animated:FALSE];
    self.window.rootViewController = navigationController;
    [self.window makeKeyAndVisible];
    return YES;
}

/* From VC1 to VC2 */
-(IBAction)gotoVC2:(id)sender
{
    VC2 *vc2 = [[VC2 alloc] init];
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    [appDelegate.navigationController vc2 animated:YES];
}

/* Setting up YouTube View */
-(void) addYouTubeLink:(UIWebView*)webView url:(NSString*)url
{
    for (UIView* shadowView in [webView.scrollView subviews])
    {
        if ([shadowView isKindOfClass:[UIImageView class]]) {
            [shadowView setHidden:YES];
        }
    }
    NSString *videoHTML = [NSString stringWithFormat:@"<html><head></head><body><iframe class=\"youtube-player\" type=\"text/html\" width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/%@\" align=\"middle\" frameborder=\"1\"></iframe></body></html>",url];
    [webView loadHTMLString:videoHTML baseURL:nil];
}
/* Going Back to VC1 */
- (IBAction)goBack:(id)sender {
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    [appDelegate.navigationController setNavigationBarHidden:YES];
    [appDelegate.navigationController setWantsFullScreenLayout:YES];
    [appDelegate.navigationController popViewControllerAnimated:YES];
}
/*从应用程序代理转到vc1*/
-(BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项
{
self.window=[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
VC1*VC1=[[VC1 alloc]init];
导航控制器=[[UINavigationController alloc]init];
[导航控制器SetModAltTransitionStyle:UIModAltTransitionStyleFlipHorizontal];
[导航控制器设置工具栏隐藏:是];
[navigationController设置NavigationBarHidden:是];
[导航控制器设置WANTSFullScreenLayout:是];
[导航控制器pushViewController:vc1已设置动画:FALSE];
self.window.rootViewController=navigationController;
[self.window makeKeyAndVisible];
返回YES;
}
/*从VC1到VC2*/
-(iAction)gotoVC2:(id)发送方
{
VC2*VC2=[[VC2 alloc]init];
AppDelegate*AppDelegate=(AppDelegate*)[[UIApplication sharedApplication]委托];
[appDelegate.navigationController vc2已设置动画:是];
}
/*设置YouTube视图*/
-(void)addYouTubeLink:(UIWebView*)webView url:(NSString*)url
{
对于(在[webView.scrollView子视图]中的UIView*阴影视图)
{
if([shadowView是类的种类:[UIImageView类]]){
[阴影视图设置隐藏:是];
}
}
NSString*videoHTML=[NSString stringWithFormat:@',url];
[webView loadHTMLString:videoHTML baseURL:nil];
}
/*回到VC1*/
-(iAction)goBack:(id)发送方{
AppDelegate*AppDelegate=(AppDelegate*)[[UIApplication sharedApplication]委托];
[appDelegate.navigationController设置NavigationBarHidden:是];
[appDelegate.navigationController SetWantFullScreenLayout:是];
[appDelegate.navigationController PopViewControllerInitiated:是];
}
请参阅下面白条的附加屏幕截图


尝试使用根视图控制器初始化导航控制器

navigationController = [[UINavigationController alloc] initWithRootViewController:vc1];

我不明白为什么要使用appDelegate.navigation controller,因为您可以使用rootViewController启动导航控制器,并根据需要推送和弹出另一个控制器

但针对你的情况,我认为这是关于框架问题。在您的
goback:sender
方法中,在
popViewControllerAnimated:
之后,按您想要的方式调整
vc1的帧。为此,我认为您应该
在代码中保留
vc1控制器。像

    @property (nonatomic, strong) UIViewController *vc1;
在标题中,以及

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
           VC1 *vc1 = [[VC1 alloc] init];
           self.vc1 = vc1;

我希望它有帮助:)

我不确定这是否与您的问题有关,但您不应该访问应用程序代理以从VC1或VC2获取导航控制器。您应该使用self.navigationController push。。。。