我正在做一个 Ipad 应用程序。现在我有 2 个 viewcontroller,ViewController 有一个 button1,它有一个 popover segue 到第二个 viewcontroller(PopoverController)。然后,PopoverController 有一个 button2,如果我单击 button2,我会从我的服务器收到一些 UIImage。如果单击 button2,我想将 UIImageView 的几个子视图添加到 ViewController 以显示这些图像。
button1 效果很好,PopoverController 可以按预期弹出。但是当我点击button2时,什么也没发生。我想知道如何在 2 个视图控制器之间传递数据以及如何将子视图添加到另一个视图控制器。
一些与我的问题有关的代码:
视图控制器.h:
#import <UIKit/UIKit.h>
@class PopoverController;
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIButton *button1;
@property (strong, nonatomic) PopoverController *popoverController;
@end
弹出控制器.h:
#import <UIKit/UIKit.h>
@class ViewController;
@interface PopoverController : UIViewController
@property (strong, nonatomic) IBOutlet UIButton *button2;
@property (strong, nonatomic) UIImage *tempImg;
@property (strong, nonatomic) ViewController *viewController;
- (IBAction)addsubviews:(id)sender;
@end
我不能只[viewController.view addSubview:img1];
在- (IBAction)addsubviews:(id)sender;
方法中使用 addsubview。所以有人可以帮助我吗?:)
====第一次更新====
有人建议我必须使用- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
方法。我已经通过控制单击 button2 并在 button2 和 ViewController 之间创建自定义 segue 来尝试这个。当我单击button2时,它显示:
Terminating app due to uncaught exception 'NSGenericException', reason: 'Could not find a navigation controller for segue 'change'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.'
所以我想知道我是否应该添加一个NavigationController
. 如果是这样,我该怎么办?
====第二次更新====
我现在使用 Paramasivan 的代码,我找到了从另一个视图控制器调用方法的方法。现在的问题是我的视图控制器中新添加的子视图没有显示出来。我想我必须更新我的视图控制器才能使其可见。
在我- (IBAction)addsubviews:(id)sender;
的方法中,我调用 ViewController 中的方法[self.viewController createSubViewWithImage:_tempImg];
所以当我点击button2时可以调用该方法,但是viewcontroller的视图没有任何改变。