如何将数据传递给通过“[[UINavigationController alloc] initWithRootViewController:newItemController];”模态呈现的子UINavigationController?

这种创建子控制器(即本例中的newItemController)的方法就是这种方法,它是通过UINavigationController initWithRootViewController方法初始化的,因此似乎无法在此处调用自定义newItemController init方法?也没有访问newItemController实例本身来调用自定义“setMyData”类型方法的权限?

NewItemController *newItemController = [NewItemController alloc];
newItemController.delegate = self;
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:newItemController];
[self.navigationController presentModalViewController:navController animated:YES];

最佳答案

您问题中的代码缺少调用NewItemController的init。
例如:

NewItemController *newItemController = [[NewItemController alloc] init];

现在,当您创建NewItemController时,您可以创建自己的init:
-(id)initWithStuff:(NSString *)example {
    self = [super init];
    if (self) {
        // do something with the example data
    }
    return self;
}

或者您可以将属性添加到NewItemController类
// header file
@property (nonatomic, copy) NSString *example;

// .m file
@synthesize example;

// when you create the object
NewItemController *item = [[NewItemController alloc] init];
item.example = @"example string data";

关于iphone - 我如何将数据传递给以模态形式呈现的子UINavigationController(即通过initWithRootViewController),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5447538/

10-11 21:53