Objective c 设置框架在OS7中不起作用

Objective c 设置框架在OS7中不起作用,objective-c,ios7,Objective C,Ios7,我试图在显示视图时设置superview的框架,我使用的代码是 navigationController.modalPresentationStyle = UIModalPresentationPageSheet; navigationController.view.superview.frame = CGRectMake(32, 20, 1024-(32*2), 748); [[self navigationController] presentModalViewController:navi

我试图在显示视图时设置superview的框架,我使用的代码是

navigationController.modalPresentationStyle = UIModalPresentationPageSheet;
navigationController.view.superview.frame = CGRectMake(32, 20, 1024-(32*2), 748);
[[self navigationController] presentModalViewController:navigationController animated:YES];

代码在OS6中运行良好。但是,对于OS7来说,它不起作用。

这种方法在iOS 7中已被弃用

- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated NS_DEPRECATED_IOS(2_0, 6_0);
使用以下命令:

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion NS_AVAILABLE_IOS(5_0);

此方法在iOS 7中已被弃用

- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated NS_DEPRECATED_IOS(2_0, 6_0);
使用以下命令:

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion NS_AVAILABLE_IOS(5_0);

此方法在iOS 7中已被弃用

- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated NS_DEPRECATED_IOS(2_0, 6_0);
使用以下命令:

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion NS_AVAILABLE_IOS(5_0);

此方法在iOS 7中已被弃用

- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated NS_DEPRECATED_IOS(2_0, 6_0);
使用以下命令:

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion NS_AVAILABLE_IOS(5_0);

如果它在iOS 6中工作,那是偶然的。在显示模式视图控制器时,您依赖于iOS使用的私有视图层次结构,您刚刚发现了这是一个坏主意的原因。它可以而且确实会在没有警告或文档的情况下进行更改。另请参见iOS 6和iOS 7之间的UITableView的视图层次结构


如果您想制作自己风格的视图控制器,最安全的做法是自己从头开始编写,而不是劫持现有的视图控制器。尝试使用自定义的演示样式,并编写一个文档

如果它在iOS 6中工作,那是偶然的。在显示模式视图控制器时,您依赖于iOS使用的私有视图层次结构,您刚刚发现了这是一个坏主意的原因。它可以而且确实会在没有警告或文档的情况下进行更改。另请参见iOS 6和iOS 7之间的UITableView的视图层次结构


如果您想制作自己风格的视图控制器,最安全的做法是自己从头开始编写,而不是劫持现有的视图控制器。尝试使用自定义的演示样式,并编写一个文档

如果它在iOS 6中工作,那是偶然的。在显示模式视图控制器时,您依赖于iOS使用的私有视图层次结构,您刚刚发现了这是一个坏主意的原因。它可以而且确实会在没有警告或文档的情况下进行更改。另请参见iOS 6和iOS 7之间的UITableView的视图层次结构


如果您想制作自己风格的视图控制器,最安全的做法是自己从头开始编写,而不是劫持现有的视图控制器。尝试使用自定义的演示样式,并编写一个文档

如果它在iOS 6中工作,那是偶然的。在显示模式视图控制器时,您依赖于iOS使用的私有视图层次结构,您刚刚发现了这是一个坏主意的原因。它可以而且确实会在没有警告或文档的情况下进行更改。另请参见iOS 6和iOS 7之间的UITableView的视图层次结构


如果您想制作自己风格的视图控制器,最安全的做法是自己从头开始编写,而不是劫持现有的视图控制器。尝试使用自定义的演示样式,并编写一个文档

好的,我找到了解决办法

BOOL ios7 = [UIDeviceHardware isOS7Device];
if(ios7){
    navigationController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
}

现在它可以正常工作了

好的,我找到了解决办法

BOOL ios7 = [UIDeviceHardware isOS7Device];
if(ios7){
    navigationController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
}

现在它可以正常工作了

好的,我找到了解决办法

BOOL ios7 = [UIDeviceHardware isOS7Device];
if(ios7){
    navigationController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
}

现在它可以正常工作了

好的,我找到了解决办法

BOOL ios7 = [UIDeviceHardware isOS7Device];
if(ios7){
    navigationController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
}

现在它可以正常工作了

该方法已被弃用,但仍然有效。显示视图控制器并不是问题所在,据我所知,它是在修改帧。显示是好的。问题在于设置帧。我需要比标准宽度多一点的宽度。该方法已被弃用,但仍然有效。显示视图控制器并不是问题所在,据我所知,它是在修改帧。显示是好的。问题在于设置帧。我需要比标准宽度多一点的宽度。该方法已被弃用,但仍然有效。显示视图控制器并不是问题所在,据我所知,它是在修改帧。显示是好的。问题在于设置帧。我需要比标准宽度多一点的宽度。该方法已被弃用,但仍然有效。显示视图控制器并不是问题所在,据我所知,它是在修改帧。显示是好的。问题在于设置帧。我需要比标准宽度多一点。