我有
UIButton *home = [UIButton buttonWithType:UIButtonTypeContactAdd];
[home addTarget:self action:@selector(addNewRoute:) forControlEvents:UIControlEventTouchDown];
UIBarButtonItem *cancelButton = [[[UIBarButtonItem alloc]
initWithCustomView:home] autorelease];
self.navigationItem.rightBarButtonItem = cancelButton;
self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.15 green:0.15 blue:0.49 alpha:1.0];
旋转:
- (void) addNewRoute:(id) sender
{
if (!routeAddIsActive) {
[UIView transitionFromView:self.addRoutesView.view toView:self.view duration:1.0 options:UIViewAnimationOptionTransitionFlipFromLeft completion:nil];
} else {
[UIView transitionFromView:self.view toView:self.addRoutesView.view duration:1.0 options:UIViewAnimationOptionTransitionFlipFromLeft completion:nil];
}
routeAddIsActive = !routeAddIsActive;
}
这是一个轮换视图:
if (!addRoutesView) {
addRoutesView = [[AddRoutesTableViewController alloc] initWithStyle:UITableViewStylePlain];
addRoutesView.managedObjectContext = self.managedObjectContext;
}
当我从视图开始旋转时:
我对新的UIView职位有一个奇怪的改变: 看起来iphone决定向下移动视图。 回来没关系,一切正常。
更新 现在我有这个代码的问题:
设置视图:
if (!addRoutesView) {
addRoutesView = [[AddRoutesTableViewController alloc] initWithStyle:UITableViewStylePlain];
addRoutesView.destinationsPushListView = self;
addRoutesView.managedObjectContext = self.managedObjectContext;
if (!addRoutesNavigationView) {
addRoutesNavigationView = [[UINavigationController alloc] initWithRootViewController:addRoutesView];
更改destinationsPushListView中的视图
- (void) addNewRoute:(id) sender
{
self.addRoutesNavigationView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:addRoutesNavigationView animated:YES];
在addRoutesView中更改视图
- (void) addNewRoute:(id) sender
{
self.destinationsPushListView.navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:destinationsPushListView.navigationController animated:YES];
一切正常,视图已更改,所有更正,更改回来,然后,当我再次单击时,调用addNewRoute函数,应用程序停止并冻结,没有任何错误和日志。 我必须将导航栏保留在里面,这可能是控制旋转的最佳方式。
答案 0 :(得分:1)
要直接回答您的问题,请检查您的相框。 transitionFromView:不应该移动任何东西,所以尝试在没有它的情况下切换视图,并检查所有内容是否排成一行。
此外,您似乎正在将另一个视图控制器的视图添加到当前视图控制器。您可能需要考虑使用带有翻转动画的模态视图控制器。要做到这一点,您需要做的就是将您的翻转修改为
addRoutesView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:addRoutesView animated:YES];
然后,您还需要实现一些委托或通知设置来回转。如果你打算走那条路,那么http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/Introduction/Introduction.html
就会有一些很好的文档