【问题标题】:Switching Views in iPhone SDK?在 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 验证了吗?

标签: iphone sdk view switch-statement


【解决方案1】:

你的行动方法...

-(IBAction)howtoplayButtonClicked;

... 应该是这样的:

-(IBAction)howtoplayButtonClicked:(id) sender;

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

  1. 在方法中放置断点或日志语句以查看它是否被调用。如果它没有检查您的 IBConnections 以确保按钮已连接到该方法。
  2. 如果您从 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。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 2012-03-28
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多