prepareForSegue メソッドを使用して 2 つの ViewController 間でデータを渡そうとしていますが、segue.destinationViewController は常に間違ったクラスであるため、「認識されないセレクターがインスタンスに送信されます」
segue.destinationViewController は、UIViewController である WebViewController である必要があります。
ARC が有効になっています。
ここに私のコードの一部があります:
NewsTableViewController.h
#import "WebViewController.h"
@interface NewsTableViewController : UITableViewController {
}
@end
NewsTableViewController.m
@implementation NewsTableViewController
//some code
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"showNewsWebView"]) {
WebViewController *webViewConroller = segue.destinationViewController ;
// here it prints UIViewController instead of WebViwController*
NSLog(@"%@",[webViewConroller class]);
//here i get the error, because setUrlAsString is not defined for UIViewController but WebViewController
[webViewConroller setUrlAsString:[NSString stringWithString:@"www.apple.com"]];
}
}
WebViewController.h
@interface WebViewController : UIViewController{
IBOutlet UIWebView * webView;
NSString *urlAsString;
}
@property (nonatomic) NSString * urlAsString;
-(void)setUrlAsString:(NSString *) string;
WebviewController.m
#import "WebViewController.h"
@interface WebViewController ()
@end
@implementation WebViewController
@synthesize urlAsString;
-(void)setUrlAsString:(NSString *) string{
self.urlAsString = string;
NSLog(@"%@",urlAsString);
}
//some other code