Noob问问fellas,但我无法得到它。
我有一个View Controller,可以在一个单独的View Controller中加载。我希望能够按下按钮来调用父View控制器中的方法。所以这就是我所拥有的
父VC:
.h
-(void)callParentMethod;
.m
-(void)viewDidLoad{
self.childVC.parentVC = self;
}
-(void)callParentMethod{
NSLog(@"Hello?");
}
孩子VC:
.h
#import "TheParentViewController.h"
@property (nonatomic, weak) TheParentViewController *parentVC;
.m
-(void)addThis{
[self.parentVC callParentMethod];
}
我没有错误,子VC方法addThis
似乎调用了该方法,但从未调用过NSLog。有什么想法我做错了吗?
答案 0 :(得分:2)
由于parentVC
引用,我认为weak
已发布。尝试使用此方法。
-(void)addThis{
NSLog(@"%@", self.parentVC);
[self.parentVC callParentMethod];
}
答案 1 :(得分:0)
YourParentVC *parent = (YourParentVC*)[self presentingViewController];
parent.whatever = blah;
答案 2 :(得分:0)
我不太确定您的应用程序是什么,但您不必保留对父视图控制器的引用。 UIViewController已经有一个名为parentViewController
的属性,您可以通过以下方式使用它:
[self.parentViewController methodToCall];
这将调用父视图控制器上的方法。您可能需要强制转换对象以调用自定义方法
[(TheParentController *)self.parentViewController methodToCall];
这当然假定子视图控制器的视图是父视图控制器视图的子视图。希望这有帮助
答案 3 :(得分:0)
检查您的父视图控制器是否已分配。
parentnvc = [ParentViewController alloc]initWithNibName:@"somenib" bundle:nil];
如果分配并初始化parentvc并调用方法