【发布时间】:2012-11-28 07:30:17
【问题描述】:
我正在做一个 Ipad 应用程序。现在我有 2 个 viewcontroller,ViewController 有一个 button1,它有一个 popover segue 到第二个 viewcontroller(PopoverController)。然后,PopoverController 有一个 button2,如果我单击 button2,我会从我的服务器收到一些 UIImage。如果单击按钮2,我想将 UIImageView 的几个子视图添加到 ViewController 以显示这些图像。
button1 效果很好,PopoverController 可以按预期弹出。但是当我点击button2时,什么也没发生。我想知道如何在 2 个视图控制器之间传递数据以及如何将子视图添加到另一个视图控制器。
一些与我的问题有关的代码:
ViewController.h:
#import <UIKit/UIKit.h>
@class PopoverController;
@interface ViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIButton *button1;
@property (strong, nonatomic) PopoverController *popoverController;
@end
PopoverController.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
我不能只在- (IBAction)addsubviews:(id)sender;方法中使用[viewController.view addSubview:img1]; 来添加子视图。所以有人可以帮助我吗? :)
====第一次更新====
有人建议我必须使用- (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; 方法中,我通过[self.viewController createSubViewWithImage:_tempImg]; 调用ViewController 中的方法
所以当我点击button2时可以调用该方法,但是viewcontroller的视图没有改变。
【问题讨论】:
-
您的问题到底是什么? “我不能只使用 [..]” - 为什么?
-
您在使用该线路时遇到了什么问题?
-
@jimpic 抱歉,我的意思是这行代码可以编译但没有达到我的预期
-
@ACB 这行代码什么也没做,至少如果我删除这行代码我没有看到任何不同。
-
@Manted,你是如何设置 viewController 属性的?你在做什么,
popovercontroller.viewcontroller = self;在显示这个弹出窗口之前?另一种方法是将图像作为viewcontroller.image = self.tempimage传递给上一个类,然后在viewcontroller 中调用一些方法,该方法将在imageview 中设置此图像。
标签: ios uiviewcontroller popover addsubview