iPadアプリをやっています。これで2つのviewcontrollersができました.viewcontrollerには、2番目のviewcontroller(PopoverController)へのポップオーバーセグエを持つbutton1があります。次に、PopoverController には button2 があり、button2 をクリックすると、サーバーから UIImage を受け取ります。ボタン2をクリックすると、UIImageViewのいくつかのサブビューをViewControllerに追加して、これらの画像を表示したいと考えています。
button1 はうまく機能し、PopoverController は期待どおりにポップアップできます。しかし、ボタン2をクリックしても何も起こりませんでした。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
[viewController.view addSubview:img1];
サブビューを追加する- (IBAction)addsubviews:(id)sender;
メソッドで使用することはできません。誰かが私を助けることができますか?:)
====1回目の更新====
メソッドを使用する必要があると誰かが提案しています- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
。ボタン2をコントロールクリックし、ボタン2とViewControllerの間にカスタムセグエを作成して、これを試しました。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
ます。もしそうなら、私は何をすべきですか?
====2回目の更新====
私は現在 Paramasivan のコードを使用しており、別のビューコントローラーからメソッドを呼び出す方法を見つけました。問題は、viewcontroller に新しく追加されたサブビューが表示されないことです。ビューコントローラーを表示するには、ビューコントローラーを更新する必要があると思います。
私- (IBAction)addsubviews:(id)sender;
のメソッドでは、ViewController でメソッドを呼び出します。[self.viewController createSubViewWithImage:_tempImg];
ボタン2をクリックするとメソッドを呼び出すことができますが、viewcontrollerのビューは何も変更されていません。