这种方式有效:
type1ViewController *viewController = [[type1ViewController alloc] initWithNibName:@"Type1View" bundle:nil];
viewController.parentViewController = self;
self.type1ViewController = viewController;
[self.view insertSubview:viewController.view atIndex:0];
[viewController release];
但是这种方式给了我错误,“请求非结构或联合中的成员parentViewController”:
type1ViewController *viewController = [[type1ViewController alloc] initWithNibName:@"Type1View" bundle:nil];
self.type1ViewController = viewController;
self.type1ViewController.parentViewController = self;
[self.view insertSubview:viewController.view atIndex:0];
[viewController release];
我不明白为什么它应该有所不同。编译器看到什么是它不喜欢的? 感谢您提前的帮助
最佳答案
当您调用 self.type1ViewController.parentViewController
而不是 viewController.parentViewController
时,它会给您一个错误,因为您已经声明了 self.type1ViewController
作为一些父类(super class),而不是 type1ViewController。当编译器查看此声明时,它不会找到 ParentViewController 属性,因此会给出错误。
在第一个示例中,您的 viewController 仍被声明为 type1ViewController,因此它工作正常。如果您将其转换为 type1ViewController,它实际上仍然可以在第二个示例中工作,但当然最好只更改声明。
关于iPhone cocoa "error:request for member ____ in something not a structure or union",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/902710/