3

初心者で、どこが悪いのかわからないのでアドバイスをいただきたいです。いくつかのアイテムを使用して、xcode でアプリを作成したいのですが、UIView何かを実行するとUIView、最初の の上に別の (最初のものよりも小さい) ポップアップが表示されUIViewます。ポップアップUIViewはカスタマイズされたクラスになります。

UIViewControllerテンプレートとイニシャルから始めて、UIView内のすべてのアイテムをリンクしましたが.storyboard、うまくいきました。しかし、独自のUIViewクラスを作成し、最初のクラスの上(from objective-C class)に 2 番目のクラスを配置してクラスにリンクすると、何か問題が発生します。UIViewstoryboard

が表示されますが、非UIView表示に設定しようとすると応答しません。メッセージを受信して​​いないようなので、プログラムでうまくリンクしておらず、storyboard.

UIView の代わりに別の UIViewController を作成する必要があるのか​​、それともこれが正しいパスなのかわかりません。

誰かが私に少し説明してくれますか、それとも 2 番目のビューのインスタンス化とそれを追加する小さなコード スニペットを書いてくれますか?

どうもありがとう!

(.h の宣言と .m のインスタンス化のコードをいくつか貼り付けます)

     #import <UIKit/UIKit.h>
     #import "EditView.h"

    @interface ReleaseViewController : UIViewController <UIWebViewDelegate, UISearchBarDelegate> {

        IBOutlet UIWebView *web;
        IBOutlet UISearchBar *search;
        IBOutlet EditView *evHack;

    }

    @property (nonatomic, retain) IBOutlet UIWebView *web;
    @property (nonatomic, retain) IBOutlet UISearchBar *search;
    @property (nonatomic, retain) IBOutlet EditView *evHack;

    @end

- (void)viewDidLoad
{
    [super viewDidLoad];

    search.delegate = self;
    web.delegate = self;

    evHack = [evHack initWithFrame:CGRectMake(0, 44, 320, 377)]; 
    [evHack setHidden:YES]; 

}

EditView クラス (まだ何もありません):

#import <UIKit/UIKit.h>

@interface EditView : UIView

@end



#import "EditView.h"

@implementation EditView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        NSLog(@"View created");
    }
    return self;
}

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
    // Drawing code
}
*/

@end
4

1 に答える 1

0

initWithFrame は、アプリを割り当て/初期化する場合にのみ機能します。既に初期化されている場合 (この場合はストーリーボードによって)、そのフレームを設定するだけです:

evHack.frame = CGRectMake(0,44, 320, 377);

IBでどのように見えるかはわかりませんが、コードでフレームを設定すると、IBでも設定すると冗長になる場合があります。evHack が正しく接続されているかどうかを確認するには、viewDidLoad で NSLog evHack を実行します。戻ってきたらnil、正しく接続されていません。

于 2012-06-23T16:51:35.940 に答える