2012-01-03 11 views
0

私のアプリケーションでは、大きな「もの」を何時間も解決しようとしています。私はとても疲れているので、「もの」の言葉の代わりにどのような言葉を使うべきか覚えていない。 :pストーリーボードを使用してプログラムでボタンを接続

私はアプリでストーリーボードを初めて使用しています。

私はボタンをプログラムで作成します。これは後でデータベースのデータに依存します。タイトルが言っているように、私の問題は私がストーリーボードを使用していることで、ストーリーボードに新しいビューを作成してボタンを変更する方法を把握できないということです。また、最初のビューのデータもあります。

あなたが私を助けてくれるなら、ここにいくつかのコードがあります。 ; p

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    int heightGrowt = 0; 

    for(int i = 0; i < 10; i++) 
    { 
     UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

     button.frame = CGRectMake(10, heightGrowt, 300, 40); 

     heightGrowt = heightGrowt + 50; 

     [button setTitle:@"First element" forState:UIControlStateNormal]; 

     [scrollWiew addSubview:button]; 
    } 

    [scrollWiew setScrollEnabled:YES]; 
    [scrollWiew setContentSize:CGSizeMake(320, heightGrowt)]; 
} 

私に助けになるものがあれば、非常に感謝します。 :)

+0

は 'scrollWiew' nilですか? –

+0

いいえ、scrollViewでは何も問題ありません。問題は、ストーリーボードのシーンにアクセスできないことです。私はコードを少し更新しました。 私はこれをwiewDidLoadに追加しました: [button addTarget:自己アクション:@selector(buttonPressed :) forControlEvents:UIControlEventTouchUpInside]; そして、この関数: - (void)buttonPressed:(id)Sender これでこれを実現します: UIButton * button =(UIButton *)Sender; int id_ = button.tag; NSLog(@ "タグ値:%d"、id_); –

答えて

0

それぞれのストーリーボードビューには、別のXIBの場合と同じようにUIViewControllerクラスが設定されています - プロジェクト内に新しいUIViewControllerサブクラスファイルを作成し、これをIBの 'カスタムクラス - クラス'プロパティストーリーボードの適切なビューのユーティリティインスペクタ。

このUIViewControllerオブジェクトは、ボタンから必要に応じてインスタンス化し、NavigationControllerスタックにプッシュするか、スウィートすることができます。

チェック本当に良いストーリーボードのチュートリアルへのこれらのリンク:

http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

http://www.raywenderlich.com/5191/beginning-storyboards-in-ios-5-part-2

1

さて、あなたのコメントをもとに、あなたは正しい軌道に乗っています。

ストーリーボードから検索するには、最初にストーリーボードに移動し、検索するビューコントローラーを選択する必要があります(ビューコントローラーの下にある紙の入った黄色の円をクリックします)。それを表示するためにズームインする必要があります)。この特定のView Controllerを参照するために使用する一意の名前を「識別子」フィールド(属性インスペクタの下に表示されます)に与えます。この例の目的でfirstViewControllerを使用しているとします。

関数では、ストーリーボードから必要なビューコントローラを取得し、正しいボタンが押されたときに表示する必要があります。私は、現在のビューがストーリーボードから読み込まれていると仮定しています(そうでなければ、ストーリーボードへの参照を別の方法で取得する必要があります)。

// I'm assuming that the class is UIViewController. Change this if not. 
UIViewController *aViewController = [[self storyboard] instantiateViewControllerWithIdentifier:@"firstViewController"]; 

// Once you have retrieved it, you display it like you would any other view controller. 
// I.e. if you want to push it onto a UINavigationController stack you would use: 
if (aViewController != nil) { 
    [self.navigationController pushViewController:aViewController animated:YES]; 
} 
+0

うわーありがとう!これはそれをすべて解決:)私はあきらめようとしていましたが、今私は続けることができます!本当にありがとう! –

+1

あなたはようこそ!あなたの問題を解決したので、これを正しい答えとして受け入れてください! – lnafziger

4
[theUIViewControllerThatYouAreSeguingFrom performSegueWithIdentifier:@"theIdentifier" sender:theViewCallingForTheSegue]; 

あなたは、インスペクタの[属性]セクションでセグエに名前を付けることができます。

関連する問題