0

1つのWebビューを使用して、このWebビューに移動するための3つの異なるボタンを使用しようとしています。それぞれが異なるウェブサイトにあなたを連れて行きます。新しいWebviewクラスを作成しました。このクラスには、どのURLに移動するかを設定するメソッドがあります。

元のViewControllerで、このメソッドに別の番号を送信しようとしていますが、既知のインスタンスメソッドがないと表示されます。

コードは以下のとおりです。

URLを設定する方法

-(void)setUrlNo:(int)urlNo
{

    if (urlNo == 0) {

        url = @"http://www.twitter.com/ac3112";
    } else if (urlNo == 1) {
        url = @"http://www.facebook.com/ac3112";
    } else if (urlNo == 2) {
        url = @"http://www.adamcarlin.co.uk";

    }
}

セグエ法の準備

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"Twitter"])
    {
        [segue.destinationViewController setUrlNo:1];

    }else if ([segue.identifier isEqualToString:@"FB"]) {
        [segue.destinationViewController setUrlNo:2];
    } else {
        [segue.destinationViewController setUrlNo:3];
    }


}
4

2 に答える 2

1

segue.destinationViewControllerタイプのオブジェクトを返しますid。警告なしにメッセージを送信するには、ViewControllerタイプにキャストする必要があります。

[(YourViewController *)segue.destinationViewController setUrlNo:1];
于 2012-07-05T15:04:52.760 に答える
0

別の Web サイトを開き、セグエ経由で URL を送信するには、マスター ビュー コントローラーに基づいてこのメソッドを使用できます。各テーブル セルまたはボタンからプッシュ セグエを作成し、UIViewController にドラッグし、そこに下のセグエ値を配置して、正しいサイト/値を取得していることを確認します。

FollowViewController.h

@interface FollowViewController : UIViewController

@end

FollowViewController.m セグエ メソッド

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
     FollowDetailViewController *webController = [[FollowDetailViewController alloc] init];

    if ([[segue identifier] isEqualToString:@"Facebook"]) { // Facebook
    NSString *urlstr=@"https://www.facebook.com/";
    webController = [segue destinationViewController];
    webController.urlstr = urlstr;
    webController.title = @"Facebook"; // this sets the title of the next page

    }
    else if ([[segue identifier] isEqualToString:@"Instagram"]) { // Instagram
    NSString *urlstr=@"http://instagram.com/";
    webController = [segue destinationViewController];
    webController.urlstr = urlstr;
    webController.title = @"Instagram"; // this sets the title of the next page
    }
    else if ([[segue identifier] isEqualToString:@"Twitter"]) { // Twitter
    NSString *urlstr=@"https://twitter.com/";
    webController = [segue destinationViewController];
    webController.urlstr = urlstr;
    webController.title = @"Twitter"; // this sets the title of the next page
    }
    else if ([[segue identifier] isEqualToString:@"YouTube"]) { // YouTube
    NSString *urlstr=@"http://www.youtube.com/";
    webController = [segue destinationViewController];
    webController.urlstr = urlstr;
    webController.title = @"YouTube"; // this sets the title of the next page
    }
    self.title = @"Follow"; // This sets the title of the back button, and the title of this page
}

FollowDetailViewController.h

@interface FollowDetailViewController : UIViewController {
    NSString *urlstr;
}

@property (strong, nonatomic) IBOutlet UIWebView *WebView;
@property (strong, nonatomic) NSString *urlstr;

@end

FollowDetailViewController.m

@implementation FollowDetailViewController

@synthesize WebView;
@synthesize urlstr;

- (void)viewDidLoad
{
    [super viewDidLoad];

    NSURL *url = [NSURL URLWithString:urlstr];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [self.WebView loadRequest:requestObj];
}

@end

幸運を!

于 2013-04-04T09:46:19.163 に答える