iOS - 传递数据给推出的视图控制器

6

在推送视图控制器时,我如何同时传递数据(例如 "asdf":123)?您应该向 NSBundle 添加对象吗?


请注意,这不是通过 NSBundle 传递数据的正确方式。相反,您可以使用视图控制器之间的属性来传递数据。首先,在发送视图控制器时,设置其属性。接下来,在接收视图控制器中访问该属性来检索数据。
3个回答

16
MyViewController * myVC = [[MyViewController alloc] initWithNibName:nil bundle:nil];
myVC.someProperty = someValue;    // Pass your data here
[self.navigationController pushViewController:myVC animated:YES];

并且在你的MyViewController类中:

.h

@interface MyViewController : UIViewController
@property (nonatomic, strong) NSString * someProperty;
@end

.m

@implementation MyViewController

    - (void)viewDidLoad {
        [super viewDidLoad];
        // your data has been set
        // self.someProperty is equal to "some value"
    }

1

我不认为你可以,但是当然你可以将相关的属性或方法添加到你的ViewController类中,并在推送之前使用它们。


1
困惑于这些踩票,因为我所写的代码恰好就是被接受答案所做的事情... - Clafou

0
不是的。你可能把NSBundle和Android的Bundle混淆了,但它们没有关联,也不执行类似的任务。Clafou建议通过方法和属性传递数据是正确的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接