我正在为iPhone开发基于Window的应用程序。我使用Interface Builder来构建Interface。我想用Button Action调用一个新屏幕。如何使用Button动作调用屏幕?
答案 0 :(得分:1)
将新控制器推到窗口堆栈的顶部。例如:
EnterNameController *newEnterNameController = [[EnterNameController alloc] initWithNibName:@"EnterName" bundle:[NSBundle mainBundle]];
[[self navigationController] pushViewController:newEnterNameController animated:YES];
答案 1 :(得分:1)
答案 2 :(得分:1)
如果您使用的是导航控制器,请将其推入导航控制器的堆栈,如同alamodey建议的那样。
如果您希望它是模态控制器(即从底部向上滑动并覆盖前一个控制器的视图,如Safari中的“书签”屏幕),则将其显示为模态视图控制器:
[self presentModalViewController:myNewController animated:YES];
如果要将旧控制器重新启动,请关闭模态视图控制器。从模态视图控制器内部:
[self.parentViewController dismissModalViewControllerAnimated:YES];
如果您不想这样做,只需从窗口中删除当前控制器的视图并添加新控制器:
UIView * containingView = self.view.superview;
[self.view removeFromSuperview];
[containingView addSubview:myNewController.view];
如果你走这条路,你可能想看看+ [UIView beginAnimations:context:],+ [UIView setAnimationTransition:onView:]和+ [UIView commitAnimations](如果我正确地回忆方法名称 - 检查文档)动画过渡。您应该几乎总是为iPhone OS中的屏幕之间的任何切换设置动画。
答案 3 :(得分:1)
(在.m班中工作)
#import "classtocall.h"
- (IBAction)ButtonPressed:(id)sender
{
classtocall *mvc = [[classtocall alloc]initWithNibName:@"classtocall" bundle:nil];
[self presentModalViewController:mvc animated:NO];
}
(适用于基于窗口的应用程序) 在.h类中定义
- (IBAction)ButtonPressed:(id)sender;
其中“classtocall”是您要调用的类。
答案 4 :(得分:0)
您只需从XCode帮助下载示例应用程序。尝试元素和UIcatalog。在帮助和下载示例中还有其他类型的'pushViewController'或'addSubview'adn'makeKeyAndVisible'
答案 5 :(得分:0)
nextscreenViewController *login = [[self storyboard] instantiateViewControllerWithIdentifier:@"nextscreenidentifier"];
nextscreenidentifier.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController: nextscreenidentifier animated: YES];