如何通过按钮操作(xcode)调用屏幕?

时间:2009-02-20 06:03:14

标签: iphone objective-c cocoa-touch

我正在为iPhone开发基于Window的应用程序。我使用Interface Builder来构建Interface。我想用Button Action调用一个新屏幕。如何使用Button动作调用屏幕?

6 个答案:

答案 0 :(得分:1)

将新控制器推到窗口堆栈的顶部。例如:

EnterNameController *newEnterNameController = [[EnterNameController alloc] initWithNibName:@"EnterName" bundle:[NSBundle mainBundle]];
[[self navigationController] pushViewController:newEnterNameController animated:YES];

答案 1 :(得分:1)

Apple拥有大量的示例代码,只需访问Apple的iPhone开发站点就可以轻松解决这个问题(以及其他许多问题)。 iPhone Dev Site

答案 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];