我正在努力调用从<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" class="btn" name="btn1" value="1" onclick="btnClick(this);">
<input type="button" class="btn" name="btn2" value="2" onclick="btnClick(this);">
<input type="button" class="btn" name="btn3" value="3" onclick="btnClick(this);">
<input type="button" class="btn" name="btn4" value="4" onclick="btnClick(this);">
<input type="button" class="btn" name="btn5" value="5" onclick="btnClick(this);">
到viewController B
的方法。需要拨打viewController A
关闭按钮点击viewController B
,然后立即调用一个方法,并希望在Dismissviewcontroller
上传递两个字符串值。它就像逆过程一样。
仅供参考:我正在使用viewController A
并为B.呈现viewController .A是Storyboard
。
答案 0 :(得分:0)
在控制器viewWillAppear
中使用A
。
从控制器B
发布通知并添加
控制器A
上的观察者。
在控制器B
关闭按钮上发布通知
[[NSNotificationCenter defaultCenter] postNotificationName:"NAME" object:nil userInfo:nil];
在控制器A
上添加观察者:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(perform:) name:@"NAME" object:nil];
B
并在控制器A
上实现它,所以一旦你点击
在关闭按钮控制器B
上,只需调用代理并执行您想要的任何操作。KVO
答案 1 :(得分:0)
传递值有很多选项
还有很多其他选项可以在上面的点上做同样的谷歌,你将获得大量的演示。
答案 2 :(得分:0)
最简单的方法,但不是最有效的方法是使viewController A
和viewController A
视图的全局对象执行加载方法
称之为全局变量并使其等于self和
然后是viewController B
将使用
[self dismissViewControllerAnimated:YES completion:^{
// here you can create a code for calling the global **viewController A** object to call the function you need
}];
结论:
<{1>}头文件中的:
viewController A
并在extern A* AGlobalInstance;
#import "A.h"
和A* AGlobalInstance;
viewDidLoad
然后在B.m按钮中使用
- (void)viewDidLoad {
[super viewDidLoad];
AGlobalInstance = self;
}
但是你必须先去一个viewController然后再去B才能使它工作
答案 3 :(得分:0)
由于上述答案建议您使用代表和通知,所以我不会建议您这些。除了他们,我想请你去Block
。
typedef void(^valueHandler)(id anyObject1, id anyObject2);
@viewController A
B *instanceOfB;
[instanceOfB setValueHandlerBlock^(id anyObject1, id anyObject2) {
// Here you can receive the values.
}];
@viewController B
@property (nonatomic, copy) valueHandler valueHandlerBlock;
//To pass the value
if (valueHandlerBlock) {
valueHandlerBlock(@"a String value", anArray);
// When ever the above line will execute it will pass the values to view controller A.
}