iOSプログラミングが新しく、この単純な概念が機能しない - ポップアップコントローラがメソッドを呼び出してデータを送信できるようにしたい親コントローラ上に表示されます。誰でも私がここで間違っていることに気付くことができますか? DetailViewController.hIOS5 iPadポップアップコントローラデリゲートが親コントローラにメッセージを送信しない
DetailViewController.mで#import <UIKit/UIKit.h>
#import "Employee.h"
#import "CompleteViewController.h"
@class EmployeesTVC;
@interface DetailViewController : UIViewController <UISplitViewControllerDelegate, UIPopoverControllerDelegate>
@property (strong) UIPopoverController *popController;
-(IBAction)completeButtonPressed:(id)sender;
@end
で
(無関係な部品を取り出した)
@implementation DetailViewController {
__weak UIPopoverController *completePopover;
}
// ...
#pragma mark - Complete/Score popover methods
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSLog(@"preparing for segue");
UIStoryboardPopoverSegue *popoverSegue = (UIStoryboardPopoverSegue *)segue;
UIPopoverController *scorePopoverController = [popoverSegue popoverController];
[scorePopoverController setDelegate:self];
self.popController = scorePopoverController;
}
- (IBAction)completeButtonPressed:(id)sender {
if (completePopover) {
[completePopover dismissPopoverAnimated:YES];
} else {
[self performSegueWithIdentifier:@"showScorePopover" sender:sender];
}
}
- (void) scoreAssigned:(NSString *)score {
NSLog(score);
NSLog(@"Score Assigned");
}
// ...
@end
CompleteViewController.h(ポップアップ・ビュー・コントローラ)
#import <UIKit/UIKit.h>
@protocol CompleteViewDelegate <NSObject>
- (void)scoreAssigned:(NSString *)score;
@end
@interface CompleteViewController : UIViewController
@property (nonatomic, assign) id<CompleteViewDelegate> delegate;
- (IBAction)okButtonPressed:(id)sender;
@end
CompleteViewController。 m
#import "CompleteViewController.h"
@implementation CompleteViewController
@synthesize delegate;
- (IBAction)okButtonPressed:(id)sender {
NSLog(@"OK Button Pressed");
[delegate scoreAssigned:@"100"];
}
@end
「OKボタン押下」が発生しており、デリゲートはnilではありません。アプリはクラッシュしない、それ以上のことはしない。 –
Interface Builderで割り当てられた代理人は?それがあなたが割り当てたものを上書きしているのかどうか疑問に思います。 – bgolson
ああ待ってください。私はそれが実際にはnullだと思う、私はそれを実現していない。 IBに割り当てられた代理人はいません。役立つ場合、詳細ビューは分割ビューの詳細ビューです。 –