如何在我的应用程序中获得对某个视图控制器的引用?我不需要一个新的视图控制器副本,我只需要一个对该控制器的引用,这样我就可以使用它的方法并更新它的属性。
谢谢
发布于 2014-02-25 01:18:33
两者之间是否存在亲子关系?
如果是这样的话,您可能会这样做
@interface ChildVC : UIViewController
@property (nonatomic, assign) ParentVC *parent;
@end在ParentVC中
- (void)methodThatShowsOrCreatesChildVC
{
// ...
ChildVC *childVC = [[ChildVC alloc] init];
childVC.parent = self;
// ...
}在ChildVC中
- (void)methodThatChangesSomethingOnParent
{
[[self parent] changeSomethingOnParent:something];
}如果没有父子关系,这听起来就像是不必要的耦合。而不是这样,你可以尝试:
NSNotification,关于NSObject-based类的更改。发布于 2014-02-25 01:15:17
这取决于您的实现,如果viewController可见或在内存中,您可以在其他类中访问它,方法是创建一个属性,然后访问它的属性(属性,方法)。
发布于 2014-02-25 01:24:28
推送新的视图控制器时
performSegueWithIdentifier:您将获得委托方法
prepareForSegue:它传递一个具有destinationViewController和sourceViewController属性的UIStoryBoardSegue
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"segueName"])
{
YourViewController *vc = [segue destinationViewController];
// Pass any objects to the view controller here, like...
[vc setMyObjectHere:object];
}
}https://stackoverflow.com/questions/21994240
复制相似问题