ios - 无法将值传递给下一个 UIViewController

标签 ios objective-c xcode uiviewcontroller

我在 xcode 6 中创建了一个包含 xib 文件的新 UIViewController 类。 我这样设置一切

ViewController 下的.h 文件

@interface NextViewController : UIViewController

@property (nonatomic,assign) int gameID;

@end

ViewController 下的.m 文件

@synthesize gameID;

.m 文件之前的 View Controller

NextViewController *nextViewController = [[NextViewController alloc] initWithNibName:@"NextViewController" bundle:nil];
nextViewController.gameID = -1;
[self.navigationController pushViewController:nextViewController animated:YES];

当我通过调试器运行它时,gameID 设置在 .h 文件中,但是当我想访问 viewDidLoad 方法中的值时,我得到了 0 代表 gameID 而不是 -1

最佳答案

您的代码看起来非常好,它应该按预期工作,也就是应该在 -(void) viewDidLoad 中显示“-1”。 我能想到的另一种方法是尝试重写 -init 方法,如下所示:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil withGameId:(int)gameIdParam {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.gameID = gameIdParam;
    }
    return self;
}

.h 文件中声明此方法,然后使用此方法创建 NextViewController 的新实例,并将 gameID 作为参数传递。

请注意,您的代码本身是正确的。我在 Mac 上试过了,它运行良好。

关于ios - 无法将值传递给下一个 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27451536/

相关文章:

iphone - 将 iPad 支持添加到 iPhone 项目 : universal vs two separate apps?

ios - 如何使用 eclipse robo-vm 在越狱的 iphone 3gs 上测试我的 iOS 应用程序

javascript - Phonegap Cordova 应用程序 iOS 的自定义启动页面选项(设置 self.viewController.startPage ="index.html"条件)

objective-c - 语法 self = [self init] 在初始化方法中是否可以接受?

ios - 如何解释在 firebase 中没有完全符号化的崩溃报告?

php - 通过 PHP 联系页面从 iPhone 发送电子邮件

ios - Swift Firebase 按距离排序

iphone - 如何使用分页加载我的表格 View ?

ios - 使用带数组的 NSDictionary 创建 JSON 文件

ios - Xcode 5关闭图标光泽效果的方法