0

ビューコントローラが1つあります。ボタンアクションにpopoverviewcontrollerを追加し、uitableviewコントローラーを備えた別のviewcontrollerをロードしました。テーブルビューコントローラ内で値を選択すると、選択した値をfirstviewcontrollerに渡すことができません。

値はnullとして来ています

2番目のViewControllerはUITableviewを持っています

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    [[NSNotificationCenter defaultCenter] postNotificationName:@"RemovePopOverController" object:self];
    selectedValue =   [titleArray objectAtIndex:indexPath.row];

}

firstviewController

-(void)removePopOver:(id)sender{

    [self->popoverController dismissPopoverAnimated:YES];

    NSString *value = m_titleViewController.selectedValue; 


  NSLog(@" Value is %@", value);
}

NSUserDefaultを使用したくありません。この問題の解決策を教えてください!

前もって感謝します。

4

3 に答える 3

0

値を設定する前に通知を投稿しています。このようにしてみてください:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    selectedValue =   [titleArray objectAtIndex:indexPath.row];
    [[NSNotificationCenter defaultCenter] postNotificationName:@"RemovePopOverController" object:self];
}
于 2012-08-28T10:03:28.273 に答える
0

通知を投稿するのではなく、この状況で使用するのが最善の方法であるため、要件に合わせてデリゲートを使用してください。

simple-delegate-tutorial-for-ios-developmentリンクを参照してください。お役に立てば幸いです。

于 2012-08-28T10:14:14.770 に答える
-1

次に、次のような別の方法を使用できます。

Appdelegateで文字列を作成します(例:stringValue)

まず、あなたの価値をあなたのAppdelegateに保存します:

 Appdelegate *appdell=[[UIApplication sharedApplication]delegate];
    appdell.stringValue=@"Your Value Goes Here";

いつでもこの値を取得できます。

Appdelegate *appdell=[[UIApplication sharedApplication]delegate];

requiredvalue=appdell.stringValue;
于 2012-08-28T10:08:08.783 に答える