現在のページ数によって表示するURLを変える(XCODE)

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
沖 滉均
記事: 237
登録日時: 13年前
住所: K県F市

Re: 現在のページ数によって表示するURLを変える(XCODE)

#1

投稿記事 by 沖 滉均 » 12年前

同じ内容を継続するのに新しいトピックを立てる必要はありません。
また、毎回名前を変更されていますが名前を変更せずに同じ名前を使用し続けて下さい。
上記両方共にフォーラムルールに記載されております。
一度フォーラムルールを確認してください。
There is no royal road to learning.
codeタグで指定できる言語
画像

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 現在のページ数によって表示するURLを変える(XCODE)

#2

投稿記事 by h2so5 » 12年前

前のトピックにも書きましたが、商品に対応するURLがどうやって与えられるのかが不明です。

http://abc.com/preview.php?id=[ページ番号] のような、ページ番号に対応するURLなのでしょうか?
仕様を明確にしてください。

bluedog
記事: 21
登録日時: 12年前

Re: 現在のページ数によって表示するURLを変える(XCODE)

#3

投稿記事 by bluedog » 12年前

ルールに反してしまいすいません。
もうひとつのトピックは解決とさせていただきました。
指摘下さりありがとうございます。

bluedog
記事: 21
登録日時: 12年前

Re: 現在のページ数によって表示するURLを変える(XCODE)

#4

投稿記事 by bluedog » 12年前

h2so5さん回答ありがとうございます。

仕様を明確にできずすいません…。

URLを設定してページごとに切り替わるようにできればとおもっています。

なのでh2so5さんの指摘とおりページ番号に対応するURLだとおもいます。

仕様を明確に出来たかは自信ないのですが、ページ番号に対応するURLでご教授頂ければとおもいます。
最後に編集したユーザー bluedog on 2012年5月09日(水) 08:06 [ 編集 1 回目 ]

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 現在のページ数によって表示するURLを変える(XCODE)

#5

投稿記事 by h2so5 » 12年前

基本的には前のトピックに書いたものと同じです。

webViewController.h

コード:

#import <UIKit/UIKit.h>

@interface webViewController : UIViewController{
    
}

@property (retain, nonatomic) IBOutlet UIWebView *web;
@property (copy, nonatomic) NSString *urlString;

- (id)initWithUrlString:(NSString *)url;

@end
webViewController.m

コード:

// 前略

- (id)initWithUrlString:(NSString *)url
{
    self = [super init];
    if (self) {
        // Custom initialization
        self.urlString = url;
    }
    return self;
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSURL *url;
    if ([self.urlString length] > 0) {
        url = [NSURL URLWithString:self.urlString];
    } else {
        // URLが指定されていないときのデフォルト
        url = [NSURL URLWithString:@"https://www.google.co.jp/"];
    }
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.web loadRequest:request];
    // Do any additional setup after loading the view from its nib.
}

- (void)dealloc {
    [web release];
    [urlString release];
    [super dealloc];
}

コード:

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex {
    if (actionSheet == _actionsSheet) {           
        // Actions 
        self.actionsSheet = nil;
        if (buttonIndex != actionSheet.cancelButtonIndex) {
            if (buttonIndex == actionSheet.firstOtherButtonIndex) {
                // [self savePhoto]; return;

                // ページ番号に対応するURLを生成
                NSString *urlString = 
                    [NSString stringWithFormat:@"http://abc.com/preview.php?id=%d", _currentPageIndex];

                // URLを渡して初期化
                webViewController* web = [[webViewController alloc] initWithUrlString:urlString];
                web.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
                UINavigationController *NavigationController =
                [[UINavigationController alloc] initWithRootViewController:web];
                [self presentModalViewController:NavigationController animated:YES];

bluedog
記事: 21
登録日時: 12年前

Re: 現在のページ数によって表示するURLを変える(XCODE)

#6

投稿記事 by bluedog » 12年前

ありがとうございます。

コードを入れてビルドしてみると、

コード:

 
- (void)dealloc {
    [web release];
    [urlString release];
    [super dealloc];
}


上記のコード部分でエラーが出てしまいました。
[web release]; 部分に Use of undeclared identifier 'web' 
[urlString release]; 部分に Unknown 'urlString'; did you mean 'NSString'?

というエラーです。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 現在のページ数によって表示するURLを変える(XCODE)

#7

投稿記事 by h2so5 » 12年前

ペーストする場所が間違っている気がします。

@implementation ModalViewController から

@end
の間に記述しましたか?


@implementation ModalViewController
の下に

@synthesize web;
@synthesize urlString;

を入れてください。

bluedog
記事: 21
登録日時: 12年前

Re: 現在のページ数によって表示するURLを変える(XCODE)

#8

投稿記事 by bluedog » 12年前

@synthesize web;
@synthesize urlString;

上記追加したらエラーが消えてビルドできました。
しかし今度は「商品を見るボタン」を押すと画面は切り替わるのですが(バーも下から出ます)
バー以外の画面が真っ黒で出てきてしまいます。

現在のコードです。

コード:

 
#import "ModalViewController.h"

@implementation ModalViewController
@synthesize web;
@synthesize urlString;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
    
    // Release any cached data, images, etc that aren't in use.
}

- (id)initWithUrlString:(NSString *)url
{
    self = [super init];
    if (self) {
        // Custom initialization
        self.urlString = url;
    }
    return self;
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSURL *url;
    if ([self.urlString length] > 0) {
        url = [NSURL URLWithString:self.urlString];
    } else {
        // URLが指定されていないときのデフォルト
        url = [NSURL URLWithString:@"https://www.google.co.jp/"];
    }
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [self.web loadRequest:request];
    // Do any additional setup after loading the view from its nib.
}

- (void)dealloc {
    [web release];
    [urlString release];
    [super dealloc];
}



//modalViewを閉じる
- (void)closeView{
    [self dismissModalViewControllerAnimated:YES];
}


- (void)viewDidUnload
{
    [self setWeb:nil];
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}


-(void)webViewDidStartLoad:(UIWebView*)webView{
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
}

// ページ読込完了時にインジケータを非表示にする
-(void)webViewDidFinishLoad:(UIWebView*)webView{
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
}

#pragma mark 初期処理
    


@end

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 現在のページ数によって表示するURLを変える(XCODE)

#9

投稿記事 by h2so5 » 12年前

UIWebViewをコードで生成するように書き換えました。
アウトレットを使用しない場合は@synthesize web; と [web release]; は必要ないので消してください。

コード:

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIWebView *web = [[UIWebView alloc] init];
    web.frame = self.view.bounds;
    web.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    web.scalesPageToFit = YES;
    [self.view addSubview:web];

    NSURL *url;
    if ([self.urlString length] > 0) {
        url = [NSURL URLWithString:self.urlString];
    } else {
        // URLが指定されていないときのデフォルト
        url = [NSURL URLWithString:@"https://www.google.co.jp/"];
    }
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [web loadRequest:request];
    // Do any additional setup after loading the view from its nib.
}

bluedog
記事: 21
登録日時: 12年前

Re: 現在のページ数によって表示するURLを変える(XCODE)

#10

投稿記事 by bluedog » 12年前

表示されました!!

WEBから前のカタログに戻れるように

コード:

 
    UIBarButtonItem *bbDone = [[UIBarButtonItem alloc]  initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(closeView)];
    self.navigationItem.leftBarButtonItem = bbDone;


を入れて戻れるようにしてみました!
他ページのURLはどうやっていれればいいでしょうか。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 現在のページ数によって表示するURLを変える(XCODE)

#11

投稿記事 by h2so5 » 12年前

「他ページのURL」とは何のことでしょうか?

bluedog
記事: 21
登録日時: 12年前

Re: 現在のページ数によって表示するURLを変える(XCODE)

#12

投稿記事 by bluedog » 12年前

現在は起動して最初のページ時に

ActionSeetの「ボタン」を押すと、

http://abc.com/preview.php?id=%d

このURLに移動します。

次にそのページから「戻る」で 前ページ時に戻ります。

そして最初のページから一つ横にスクロールをして2つめのページになります。

その2つめのページから、ActionSeetの「ボタン」を押すと、

http://abc.com/preview.php?id=%d ではなく 別のURLを指定して移動出来るようにしたいです。

これをページ分の40個のURLを書いて表示させたいとおもっています。

説明不足ですみませんです。
最後に編集したユーザー bluedog on 2012年5月09日(水) 08:14 [ 編集 1 回目 ]

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 現在のページ数によって表示するURLを変える(XCODE)

#13

投稿記事 by h2so5 » 12年前

このコードでは、
http://abc.com/preview.php?id=[ページ番号]のU ... るようになっています

つまり、ページ番号0のページから「商品を見るボタン」を押すと
http://abc.com/preview.php?id=0 に接続し

ページ番号12のページから「商品を見るボタン」を押すと
http://abc.com/preview.php?id=12 に接続するようになっています。

これで40通りのURLが存在することになります。

bluedog
記事: 21
登録日時: 12年前

Re: 現在のページ数によって表示するURLを変える(XCODE)

#14

投稿記事 by bluedog » 12年前

知識不足ですいません…。。
頭がこんがらがってしまいました。

ということは、
http://abc.com/preview.php?id=[ページ番号]のURL
はどこに書けばよろしいですか?

すいませんが1枚目と2枚目のURL表示されるように教えてもらってもよろしいですか。

yahooとgoogleとか分けてもらえると助かります。

場違いな返答していたらすいません!

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 現在のページ数によって表示するURLを変える(XCODE)

#15

投稿記事 by h2so5 » 12年前

ページごとに個別のURLを指定するということであれば、
一応はこのようにして指定することもできます。

コード:

- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex {
    if (actionSheet == _actionsSheet) {           
        // Actions 
        self.actionsSheet = nil;
        if (buttonIndex != actionSheet.cancelButtonIndex) {
            if (buttonIndex == actionSheet.firstOtherButtonIndex) {
                // [self savePhoto]; return;
                
                NSString *urlString;
                switch (_currentPageIndex) {
                        
                    // ページ番号 0 の時のURL
                    case 0:
                        urlString = @"http://google.com/";
                        break;
                        
                    // ページ番号 1 の時のURL
                    case 1:
                        urlString = @"http://yahoo.com/";
                        break;
                        
                    // ページ番号 2 の時のURL
                    case 2:
                        urlString = @"http://bing.com/";
                        break;
                        
                    // 以下続く...
                        
                    // デフォルト
                    default:
                        urlString = @"http://msn.com/";
                        break;
                }
                
                webViewController* web = [[webViewController alloc] initWithUrlString:urlString];
                
                web.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
                UINavigationController *NavigationController =
                [[UINavigationController alloc] initWithRootViewController:web];
                [self presentModalViewController:NavigationController animated:YES];
bluedog さんがどんなプログラムを作りたいのか、
私にはさっぱり分からないのでこれ以上の回答ができません。

bluedog
記事: 21
登録日時: 12年前

Re: 現在のページ数によって表示するURLを変える(XCODE)

#16

投稿記事 by bluedog » 12年前

h2so5さん、色々すいません!

最後のこのプログラムが作りたかったです。
まさにこのことでした…。。説明不足で本当申し訳ありませんでした。

無事完成しました。本当にありがとうございます。

最後にWebViewのバーに「戻る」「進む」「リロード」をつけたいのですが、
ご教授願えないでしょう。何でもすいません。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 現在のページ数によって表示するURLを変える(XCODE)

#17

投稿記事 by h2so5 » 12年前

iPhoneアプリ開発を勉強しているのなら、いちいち質問しているとためにならないと思うのですが...

bluedog
記事: 21
登録日時: 12年前

Re: 現在のページ数によって表示するURLを変える(XCODE)

#18

投稿記事 by bluedog » 12年前

すいません。
WebViewのバーに「戻る」「進む」「リロード」がコードだけだと
なかなかうまくいかなかったもので…。
初心者と今回急な案件であせってしまいました…。
h2so5さんの言う通りもうすこし自力でやってみます。
またご相談してしまうかもしれませんが、
そのときは宜しくお願いします。
本当に色々教えてくださってありがとうございました。
本当に助かりました。

bluedog
記事: 21
登録日時: 12年前

Re: 現在のページ数によって表示するURLを変える(XCODE)

#19

投稿記事 by bluedog » 12年前

ご回答ありがとうございました。
とても助かりました。
これで解決とさせていただきます。

閉鎖

“C言語何でも質問掲示板” へ戻る