私のnoobの質問は私に許してください。でも、本当に助けが必要です。私はswift2でIOS開発を学んでいます。 Unfortuantely、Views/Nibファイルを使って作業する場合、私が従ったチュートリアルは実際には高度なものにはなりません。外部ロードNibからIBOutlets/IBActionsを利用する
私はNibをロードするカスタムクラスを作成しようとしており、UIViewの新しくインスタンス化されたクラスのOutlets/Actionsで作業できます。
ビューを適切に読み込んでtableHeaderViewに挿入できる情報が見つかりましたが、失礼です。私は少しガイダンスが必要です。
ReserveHeaderCell.swift
class ReserveHeaderCell : UIView{
@IBOutlet weak var ReserveHeaderImageView: UIImageView!
class func instanceFromNib() -> UIView {
return UINib(nibName: "ReserveHeaderCell", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as! ReserveHeaderCell
}
}
私は、このクラスであることを私XIBでクラスを設定し、さらに、出口は親ビュー内のUIImageViewを指します。
ReserveViewController.swiftは含まれています
let reserveHeaderFrame: CGRect = CGRectMake(0,0,self.view.frame.size.width, 164)
let rhCell = ReserveHeaderCell.instanceFromNib()
rhCell.frame = reserveHeaderFrame
ReserveTableView.tableHeaderView = rhCell
そして、このすべての作品を。フレームが作成され、xibがロードされてビューに追加されます。問題は、ReserveHeaderCell.swiftファイルで定義されているIBOutletにアクセスできないということですまた、これが私がしようとしていることを達成するための正しい方法であるかどうかは本当に分かりません。 (OBJ-Cで行われる)私が達成しようとしています何
- (id)initWithFrame:(CGRect)frame {
if (self) {
NSArray *nib = [[NSBundle mainBundle]
loadNibNamed:@"HeaderNib"
owner:self
options:nil];
self = [nib objectAtIndex:0];
// ACTIONS GO HERE
}
return self;
}
Iがobj-C Hファイル(作成されたIBOutletsのいずれかへのアクセス権を持っていますが、私の場合のためにそのようにobj-cメソッドを使って、単にview.outlet = ""を呼び出してそれらにアクセスすることができます。
何か助けていただければ幸いです。助けになるチュートリアルへのリンクがあれば、それは感謝しています。
ありがとうございます。
カスタムクラスを使用してロードしたいと思います。単にそれを直接tableviewにロードするだけではありません。なぜなら、xibの中には多くの入出力があるからです。特定のペン先にはおそらく問題ありませんが、このソリューションは、より詳細なレイアウト/出力/アクションを持つ同様の方法で他のものを実装する際に役に立ちます。 – Imperialized
私はお詫び申し上げます。 1つの例外は、私をから変更する必要があったということでした! UIViewをそのまま! MyCustomClass。また、代わりにUINib()関数に変更しました。しかし、これは私に一般的な方向性を与えました。ありがとう – Imperialized