在 iPhone SDK 中切换视图?

Posted

技术标签:

【中文标题】在 iPhone SDK 中切换视图?【英文标题】:Switching Views in iPhone SDK? 【发布时间】:2010-02-16 20:40:10 【问题描述】:

为什么这不会为我切换视图?当我单击按钮时,它什么也不做......

-(IBAction)howtoplayButtonClicked
    howToPlayViewController = [[HowToPlayViewController alloc] initWithNibName:@"HowToPlayViewController" bundle:nil];
    [self.navigationController pushViewController:howToPlayViewController animated:YES];
    [HowToPlayViewController release];


在 .h 文件中我有这个...

#import <UIKit/UIKit.h>
#import "HowToPlayViewController.h"

@interface PopToItViewController : UIViewController 

    HowToPlayViewController *howToPlayViewController;



-(IBAction)howtoplayButtonClicked;

@end

【问题讨论】:

您是否将您的按钮连接到操作方法howtoplayButtonClicked? 你用 NSLog 验证了吗? 【参考方案1】:

你的行动方法...

-(IBAction)howtoplayButtonClicked;

... 应该是这样的:

-(IBAction)howtoplayButtonClicked:(id) sender;

如果它的形式不正确,它可能不会被调用。如果更正表格不起作用,您应该:

    在方法中放置断点或日志语句以查看它是否被调用。如果它没有检查您的 IBConnections 以确保按钮已连接到该方法。

    如果您从 nib 初始化它然后释放它,则不需要将 howToPlayViewController 设置为属性。一般来说,如果你想在 Interface Builder 中连接它,你只会使用一个属性,在这种情况下,它应该像这样定义:

    IBOutlet HowToPlayViewController *howToPlayViewController;

【讨论】:

【参考方案2】:

对于初学者来说,这是错误的:

[HowToPlayViewController release];

应该是:

[howToPlayViewController release];

我不知道向班级发送发布消息有什么作用。

【讨论】:

将它切换到 howtoPlayViewController 并且它仍然没有做任何事情【参考方案3】:

确保 self.navigationController!=nil

【讨论】:

例如 assert(self.navigationController != nil)【参考方案4】:

设置initWithNibName:nil",让视图控制器完成其余的工作。

【讨论】:

如果你想要翻转动画,你可以添加 yourViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizo​​ntal;只需更改任何其他动画的 UIModalTransitionStyle。

以上是关于在 iPhone SDK 中切换视图?的主要内容,如果未能解决你的问题,请参考以下文章

iphone sdk:如何正确切换控制器

如何在iPhone SDK中的MKMapView中单击注释引脚切换到另一个视图?

iPhone SDK:切换到一个视图然后返回到前一个视图错误

如何使用 iOS 6 sdk 为 iPhone 4s 或 iPhone 4 制作视图控制器?

在 iPad 上的 UIPopoverController 中显示 iPhone-View (iPhone SDK)

在 iPhone 中将视图从纵向切换到横向,就像 iPhone 中的计算器一样