0

私のアプリでは、QR コードをスキャンした後にアプリ ユーザーをアプリ内の別のビューに誘導する QR コード リーダーを実装しました。

私は2つのXibを持っています。1 つは、demoViewController というアプリを開いたときに読み込まれるメイン画面です。もう 1 つは、yViewController と呼ばれる、QR コードをスキャンした後にアプリが移動するページです。

yViewController では、sPage という UIView を使用してページ全体をマスクしました。この UIView を作成した理由は、次のコードを実装する必要があったためです。

[[NSBundle mainBundle] loadNibNamed:@"yViewController" owner:self options:nil];
        [self.view addSubview:sPage];

これは、スキャン後にユーザーを 2 ページ目に移動させるコードです。このメソッドを機能させるには、マスク UIView sPage が必要でした。そして、それは機能します。

ただし、これは私のインターフェイスを台無しにしていると思います。viewDidLoad を使用して demoViewConroller.m を介して実装された sPage ビューに UIImageView がありました。

[topImage setImage: [UIImage imageNamed:@"ylogoREAL.png"]]; 

画像が表示されません。

さらに、キーボードが表示されてテキストフィールドが非表示になったときにビューをアニメーション化するコードがいくつかあります。これも機能しません。

sPage ビューで機能する buttonPressed メソッドと、ビューに触れるとキーボードを閉じるメソッドを使用しているため、階層が正しいことはわかっています。しかし、他に何も機能しません。

誰でも理由を理解するのを手伝ってもらえますか? 私は困惑している :(

4

3 に答える 3

1

私はあなたが達成しようとしていることについて少し混乱していますが、私はそれをやってみます

yViewControllerをどのように初期化しますか?私はあなたが使うべきだと信じています

yViewController = [[UIViewController alloc] initWithNibName:@"yViewController" bundle:[NSBundle mainBundle]];

yViewControllerのペン先をロードするマスクビューを作成する代わりに。

アップデート:

コードを見た後、スキャンが完了した後に調査ページを表示したいと思います。あなたができることは2つあります

オプション1-より簡単

既存のUIViewController(yViewController)を使用して、UIViewをユーザーに提示します

NSArray *nibs = [[NSBundle mainBundle] loadNibNamed:@"Survey" owner:self options:nil];
UIView *view_to_show = [nibs objectAtIndex:0];
[self.view addSubview:view_to_show];

後でこのビューを閉じることができるようにするには、このビューへの参照が必要であり(プロパティとして宣言する)、後で[view_to_show setHidden:YES]を実行できることに注意してください。またはremoveFromSuperview

オプション2-UIViewControllerオプション

調査ビューを使用して新しいUIViewControllerを作成し、それを示します

UIViewController *vc_new = [[UIViewController alloc] initWithNibName:@"Survey" bundle:[NSBundle mainBundle]];
[self presentViewController:vc_new animated:YES completion:nil];
于 2013-01-11T16:16:10.183 に答える
1

私があなたのエラーを正しく理解していれば、関数を呼び出してからセミコロンで行を終了し(プログラマーの習慣の力)、次の行に移動して(おそらく)中括弧で関数を開きます。

-(void) function();
{

セミコロンを付ける必要はありません

-(void) function()
{
于 2013-01-11T16:35:48.683 に答える
0

[[NSBundle mainBundle] loadNibNamed:@"yViewController" owner:self options:nil]; のすぐ下で topImage を宣言するだけで済みました。. この場合、ViewDidLoad を配置する場所が間違っていたと思います。

于 2013-01-11T17:53:33.193 に答える