0

iPadアプリを開発しています。ある段階で、ドロップダウン タイプの機能を使用する必要があります。だから、私は同じために UIPopoverView を使用しています。

特定の UIButton のタップで IBAction が起動すると、popoverview レンダリング UITableViewController を調整します。

そして、すべてが正常に機能しています。ユーザーがセルのいずれかをタップしたときに、関連するセル値を添付の UIButton タイトルに設定する必要があります。

ここに画像の説明を入力

ここで、ポップオーバー ビューは UITableViewController ビューで、別途作成します。そして、選択した Outlet IBAction でそれを呼び出します。

CGRect dropdownPosition = CGRectMake(self.btnOutlet.frame.origin.x, self.btnOutlet.frame.origin.y, self.btnOutlet.frame.size.width, self.btnOutlet.frame.size.height);
[pcDropdown presentPopoverFromRect:dropdownPosition inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

ありがとう

4

3 に答える 3

4

Sangony の回答はほぼ正しいですが、いくつかの小さな変更を加えて、パラメーターなしでメソッドをオブザーバーとして登録する代わりに、1 つのパラメーターを認めて追加する必要があります。

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(someAction:)
                                             name:@"ButtonNeedsUpdate"
                                           object:nil];

次に、通知を投稿するときに (テーブルのビュー didSelectRow:atIndexPath:)、オブジェクト (NSDictionay) をユーザー情報として追加できます。

//...
NSDictionary *userInfoDictionary = @{@"newText":@"some text"};
[[NSNotificationCenter defaultCenter] postNotificationName:@"ButtonNeedsUpdate" 
                                                    object:self 
                                                  userInfo:userInfoDictionary];
//...

そして、この通知を監視しているクラスでは、次のように someAction アクション メソッドでデータを操作できます。

-(void)someAction:(NSNotification)notification{
    NSString *textForTheButton = [[notification userInfo]objectForKey:@"newText"];
    [self.myButton setTitle:textForTheButton 
                   forState:UIControlStateNormal];
    //...
}

あなたのボタンのタイトルは「何らかのテキスト」になるはずです。

于 2013-04-30T14:28:23.340 に答える
2

NSNotificationCenter を使用してみてください。ボタンを含む VC に次のコードを配置します。

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(someAction)
                                                 name:@"ButtonNeedsUpdate"
                                               object:nil];

-(void)someAction {
// do stuff to your button
}

ボタンを変更する他の VC に、次のコードを配置して通知を行います。

[[NSNotificationCenter defaultCenter] postNotificationName:@"ButtonNeedsUpdate" object:self];
于 2013-04-30T13:16:03.150 に答える