ios7-在另一个视图控制器上显示视图控制器,但不是全屏显示 当我按下我的视图控制器的按钮时,我想在它上面显示另一个控制器,但是在中间,而不是在全屏上。

ios7-在另一个视图控制器上显示视图控制器,但不是全屏显示 当我按下我的视图控制器的按钮时,我想在它上面显示另一个控制器,但是在中间,而不是在全屏上。,ios,xcode,ios7,uistoryboard,Ios,Xcode,Ios7,Uistoryboard,如何以这种方式在另一个控制器上显示控制器?是的,您可能必须使用动画显示视图控制器视图。请参考下面的代码。你会对它从屏幕底部到屏幕中间显示动画有所了解。 YourViewController *viewController = [[YourViewController alloc] init]; [viewController.view setFrame:CGRectMake(0, -(CGRectGetHeight(viewController.view.frame)), CGRectG

如何以这种方式在另一个控制器上显示控制器?

是的,您可能必须使用动画显示视图控制器视图。请参考下面的代码。你会对它从屏幕底部到屏幕中间显示动画有所了解。

YourViewController *viewController = [[YourViewController alloc] init];
    [viewController.view setFrame:CGRectMake(0, -(CGRectGetHeight(viewController.view.frame)), CGRectGetWidth(viewController.view.frame), CGRectGetHeight(self.view.frame))];

    [self.view addSubview:viewController.view];
    [UIView animateWithDuration:0.8 animations:^{

        [viewController.view setFrame:CGRectMake(0, 0, CGRectGetWidth(viewController.view.frame), CGRectGetHeight(viewController.view.frame))];

    } completion:^(BOOL finished) {
        [self.navigationController pushViewController:viewController animated:NO];
    }];

是,您可能需要为视图控制器视图提供动画。请参考下面的代码。你会对它从屏幕底部到屏幕中间显示动画有所了解。

YourViewController *viewController = [[YourViewController alloc] init];
    [viewController.view setFrame:CGRectMake(0, -(CGRectGetHeight(viewController.view.frame)), CGRectGetWidth(viewController.view.frame), CGRectGetHeight(self.view.frame))];

    [self.view addSubview:viewController.view];
    [UIView animateWithDuration:0.8 animations:^{

        [viewController.view setFrame:CGRectMake(0, 0, CGRectGetWidth(viewController.view.frame), CGRectGetHeight(viewController.view.frame))];

    } completion:^(BOOL finished) {
        [self.navigationController pushViewController:viewController animated:NO];
    }];

是,您可能需要为视图控制器视图提供动画。请参考下面的代码。你会对它从屏幕底部到屏幕中间显示动画有所了解。

YourViewController *viewController = [[YourViewController alloc] init];
    [viewController.view setFrame:CGRectMake(0, -(CGRectGetHeight(viewController.view.frame)), CGRectGetWidth(viewController.view.frame), CGRectGetHeight(self.view.frame))];

    [self.view addSubview:viewController.view];
    [UIView animateWithDuration:0.8 animations:^{

        [viewController.view setFrame:CGRectMake(0, 0, CGRectGetWidth(viewController.view.frame), CGRectGetHeight(viewController.view.frame))];

    } completion:^(BOOL finished) {
        [self.navigationController pushViewController:viewController animated:NO];
    }];

是,您可能需要为视图控制器视图提供动画。请参考下面的代码。你会对它从屏幕底部到屏幕中间显示动画有所了解。

YourViewController *viewController = [[YourViewController alloc] init];
    [viewController.view setFrame:CGRectMake(0, -(CGRectGetHeight(viewController.view.frame)), CGRectGetWidth(viewController.view.frame), CGRectGetHeight(self.view.frame))];

    [self.view addSubview:viewController.view];
    [UIView animateWithDuration:0.8 animations:^{

        [viewController.view setFrame:CGRectMake(0, 0, CGRectGetWidth(viewController.view.frame), CGRectGetHeight(viewController.view.frame))];

    } completion:^(BOOL finished) {
        [self.navigationController pushViewController:viewController animated:NO];
    }];

在iPhone中,显示
UIViewController
总是全屏显示。在iPad上,您可以使用
UISplitViewController
或构建自定义容器,但您提供的视图控制器将填充
UISplitViewController
和自定义容器控制器中的容器

要仅在部分屏幕上显示内容,可以在视图控制器上设置
ui视图的动画。有几种方法可以显示视图控制器,但后面仍显示另一个视图控制器,但不建议这样做


查看有关创建自定义容器视图控制器的详细信息。

在iPhone中,始终全屏显示
UIViewController
。在iPad上,您可以使用
UISplitViewController
或构建自定义容器,但您提供的视图控制器将填充
UISplitViewController
和自定义容器控制器中的容器

要仅在部分屏幕上显示内容,可以在视图控制器上设置
ui视图的动画。有几种方法可以显示视图控制器,但后面仍显示另一个视图控制器,但不建议这样做


查看有关创建自定义容器视图控制器的详细信息。

在iPhone中,始终全屏显示
UIViewController
。在iPad上,您可以使用
UISplitViewController
或构建自定义容器,但您提供的视图控制器将填充
UISplitViewController
和自定义容器控制器中的容器

要仅在部分屏幕上显示内容,可以在视图控制器上设置
ui视图的动画。有几种方法可以显示视图控制器,但后面仍显示另一个视图控制器,但不建议这样做


查看有关创建自定义容器视图控制器的详细信息。

在iPhone中,始终全屏显示
UIViewController
。在iPad上,您可以使用
UISplitViewController
或构建自定义容器,但您提供的视图控制器将填充
UISplitViewController
和自定义容器控制器中的容器

要仅在部分屏幕上显示内容,可以在视图控制器上设置
ui视图的动画。有几种方法可以显示视图控制器,但后面仍显示另一个视图控制器,但不建议这样做


查看以获取有关创建自定义容器视图控制器的详细信息。

在显示控制器之前,需要将此属性设置为控制器

controller.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:controller animated:YES completion:nil];

在显示控制器之前,需要将此属性设置为控制器

controller.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:controller animated:YES completion:nil];

在显示控制器之前,需要将此属性设置为控制器

controller.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:controller animated:YES completion:nil];

在显示控制器之前,需要将此属性设置为控制器

controller.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentViewController:controller animated:YES completion:nil];

如果你在iPad上试用,你可以随时设置一个包含新视图的Popover

UIYourNewViewController *vc = [[UIYourNewViewController alloc] init];

UIPopoverController *popVc = [[UIPopoverController alloc] initWithContentViewController:vc];
[popVc setPopoverContentSize:*the size that you want or your resized vc*];
[popVc presentPopoverFromRect:*position of the screen you want to show the popover* inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
使用此选项,您将创建一个与viewcontroller视图大小相同的弹出窗口,并可以将其弹出到所需的位置。 为了确保它也能在iPhone上运行,您应该为UIPopoverController创建一个类别,并将此方法添加到.m中

+ (BOOL)_popoversDisabled {
return NO;
}


请记住在类别的.h中声明该方法。

如果您在iPad上尝试,您可以随时设置包含新视图的Popover

UIYourNewViewController *vc = [[UIYourNewViewController alloc] init];

UIPopoverController *popVc = [[UIPopoverController alloc] initWithContentViewController:vc];
[popVc setPopoverContentSize:*the size that you want or your resized vc*];
[popVc presentPopoverFromRect:*position of the screen you want to show the popover* inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
使用此选项,您将创建一个与viewcontroller视图大小相同的弹出窗口,并可以将其弹出到所需的位置。 为了确保它也能在iPhone上运行,您应该为UIPopoverController创建一个类别,并将此方法添加到.m中

+ (BOOL)_popoversDisabled {
return NO;
}


请记住在类别的.h中声明该方法。

如果您在iPad上尝试,您可以随时设置包含新视图的Popover

UIYourNewViewController *vc = [[UIYourNewViewController alloc] init];

UIPopoverController *popVc = [[UIPopoverController alloc] initWithContentViewController:vc];
[popVc setPopoverContentSize:*the size that you want or your resized vc*];
[popVc presentPopoverFromRect:*position of the screen you want to show the popover* inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
使用此选项,您将创建一个与viewcontroller视图大小相同的弹出窗口,并可以将其弹出到所需的位置。 为了确保它也能在iPhone上运行,您应该为UIPopoverController创建一个类别,并将此方法添加到.m中

+ (BOOL)_popoversDisabled {
return NO;
}


请记住在类别的.h中声明该方法。

如果您在iPad上尝试,您可以随时设置包含新视图的Popover

UIYourNewViewController *vc = [[UIYourNewViewController alloc] init];

UIPopoverController *popVc = [[UIPopoverController alloc] initWithContentViewController:vc];
[popVc setPopoverContentSize:*the size that you want or your resized vc*];
[popVc presentPopoverFromRect:*position of the screen you want to show the popover* inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
使用此选项,您将创建一个与viewcontroller视图大小相同的弹出窗口,并可以将其弹出到所需的位置。 为了确保它也能在iPhone上运行,您应该为UIPopoverController创建一个类别,并将此方法添加到.m中

+ (BOOL)_popoversDisabled {
return NO;
}


记住在类别的.h中声明方法。

此解决方案在iOS8中不再有效。在这种情况下,它将打开屏幕大小的ModalViewController。此解决方案不起作用