gpt4 book ai didi

ios - 在 iOS 中同时切换 Controller 和 View

转载 作者:行者123 更新时间:2023-11-28 19:12:27 24 4
gpt4 key购买 nike

我的项目中有以下 Controller 和 View :

PortraitController.m
PortraitView.xib
LandscapeController.m
LandscapeView.xib

纵向 Controller 用作纵向 View 的 Controller ,并且横向 Controller 用作横向 View 的 Controller 。

当设备方向改变时,我需要同时切换 Controller 和 View 。Apple 建议采用这种方法,但他们没有提供可用的一般示例!

我找到了各种示例,但它们并不是我所需要的——一个 Controller + 同一个 xib 中的两个 View ,导航 Controller 中的 push+pop,将第二个 View 放在前一个 View 上,...它们都不是我需要的.

当设备方向改变时,在这两个 Controller+View 组合之间切换(带动画)的最简单方法是什么?

是否有同时适用于 iOS 5 和 iOS 6 的解决方案?

最佳答案

Apple 提供的示例使用 Storyboard 的 segue 机制从一个 View 转到另一个 View ,如果您使用的是 NIB 文件,则需要使用 UINavigationViewController 方法,您甚至可以设置要从一个 View 转到的过渡UIControllerView 到另一个

例如,此代码将通过翻页动画从一个 UIViewController 切换到另一个 UIViewController

[UIView  beginAnimations:nil context:NULL];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.75];
[self.navigationController pushViewController:yourViewController animated:NO];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:navController.view cache:NO];
[UIView commitAnimations];

为了知道何时推送一个 View 或另一个 View (或者如果切换到 Storyboard则使用 segue),您可以注册以从导航 Controller 或当前 View 中监听 UIDeviceOrientationDidChangeNotification 事件,以注册特定方法例如处理屏幕旋转

-(void)viewWillAppear:(BOOL)animated {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(methodToChangeViewController) name:UIDeviceOrientationDidChangeNotification object:nil];

}

-(void)viewWillDisappear:(BOOL)animated {
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil];
}

注销事件很重要

希望这能给你一些关于如何实现你的意图的见解

关于ios - 在 iOS 中同时切换 Controller 和 View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14467665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com