【问题标题】:Set parameter to super view after dismissModalViewControllerAnimated在dismissModalViewControllerAnimated后设置参数为超级视图
【发布时间】:2010-12-22 19:38:40
【问题描述】:

我有 2 个视图(视图 A 和视图 B)。

在 viewA 中,当我触摸按钮时,我执行此代码来翻转 viewB:

viewB.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:viewB animated:YES];

现在当我回到 viewA 时,我使用以下代码:

[self dismissModalViewControllerAnimated: YES]; //here is my problem

我需要在执行解除时为 viewA 设置相同的参数。 我该怎么做?

编辑 我还没有找到任何解决方案,我以这种方式使用了 pushNavigation:

FirstViewController *viewA = [self.storyboard instantiateViewControllerWithIdentifier:@"myView"];

// Effettuo il push alla view successiva
[self.navigationController pushViewController:viewA animated:YES];

【问题讨论】:

  • 我不太明白你在说什么。您要在 viewA 上设置哪些参数?您是否也尝试从 viewB 以模态方式呈现 viewA?
  • 可能我有同样的错误,但我的目标是当我触摸 viewA 中的按钮时推送到 viewB。现在在这个视图(viewB)中我设置了相同的参数,当我触摸viewB中的一个按钮时,我回到viewA并传递了相同的参数。我该怎么做?

标签: iphone objective-c cocoa dismiss


【解决方案1】:

搜索委托示例或简单地使用 NSNotificationCenter 将消息从一个视图发送到另一个视图

A 类:

@protocol myDelegate

@interface ClassA : UIViewController {

}

@end

@protocol myDelegate
- (void)thingsDone:(id)someValues;
@end

B 类:

#import "ClassA.h"
@interface ClassB : UIViewController <myDelegate> {

}
@end

【讨论】:

    【解决方案2】:

    你有两个选择:

    1- 您可以使用delegate pattern 并将viewA 注册为委托对象:

    viewB.delegate = self;
    [self presentModalViewController:viewB animated:YES];
    

    在 viewB 中,您可以向代理发送消息:

    [delegate someMethod];
    

    2- 您可以在 viewB 中保留指向 viewA 的指针:

    viewB.viewA = self;
    [self presentModalViewController:viewB animated:YES];
    

    然后你就可以直接向viewA发送消息了:

    [viewA someMethod];
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 2014-12-31
    相关资源
    最近更新 更多