2

私は、HTMLコードで機能するドロップダウンメニューを「シミュレート」するこのコードを使用しています。ページに2つのドロップダウンメニューを追加しました。最初のドロップダウンメニューでアイテムを選択すると、コントローラーに通知する必要があり、選択したドロップダウンアイテムから選択したIDをこの通知で指定する必要があります。最初のドロップダウンでアイテムが選択されたときにコントローラーに通知するにはどうすればよいですか?また、最初のドロップダウンリストから選択したIDで通知をパッケージ化するにはどうすればよいですか?

以下のコードを使用してドロップダウンを初期化します。

ddDuration = [[UIDropDownMenu alloc] init];
[ddDuration makeMenu:txtDurationId titleArray:arrDurationIds valueArray: arrDurationNames targetView:self.view];
[ddDuration setDropdownTextColor:[UIColor whiteColor]];
[ddDuration setDropdownBackgroundColor:[UIColor darkGrayColor]];

arrDurationsIdとには同じ数のarrDurationNames要素が含まれています。前者にはIDが含まれ、後者には名前が含まれます。

次に、でアイテムが選択されるたびに、以下のメソッドが呼び出されるようにしますdropdown 1。送信者は、どのコンテンツを送信するかを知るdropdown 1ために、-から選択したアイテムIDを含める必要があります。dropdown 2

- (IBAction)didSelectCountry:(id)sender {
    [ddDestination makeMenu:txtDestinationId titleArray:arrDepartureIds valueArray: arrDepartureNames targetView:self.view];
    [ddDestination setDropdownTextColor:[UIColor whiteColor]];
    [ddDestination setDropdownBackgroundColor:[UIColor darkGrayColor]];
}
4

1 に答える 1

0

コードをダウンロードした場所と同じページに解決策があります。これをチェックして

[menu1 addObserver:self forKeyPath:@"selectedValue" options:NSKeyValueObservingOptionNew context:@"menu1"];

この

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change (NSDictionary *)change context:(NSString *)context
{
    // get the selected menu and value
    NSString* changedObject = context;
    NSString* changedValue = [change objectForKey:NSKeyValueChangeNewKey];

    NSLog(@"%@ has changed to %@", changedObject, changedValue);

    // Menu 1 selected
    if ([context isEqualToString:@"menu1"]){
        // create a new array for menu 2.  
        NSArray *arrayNames2 = [[NSArray alloc] initWithObjects:
                        @"Erik Vanderwal",
                        @"Max Town",  
                        @"Avis Villalon",
                        @"Hugh Salvia",
                        nil];

        // rebuild menu 2 with the new array values
        [menu2 makeMenu:textfield2 titleArray:arrayNames2 valueArray: arrayNames2 targetView:self.view];

        // run makemenu with nil array values to clear the old values from menu 3
        [menu3 makeMenu:textfield3 titleArray:nil valueArray: nil targetView:self.view];

    }

    // Menu 2 selected
    if ([context isEqualToString:@"menu2"]){
        NSArray *arrayNames3 = [[NSArray alloc] initWithObjects:
                            @"Erik Vanderwal",
                            @"Hugh Salvia",
                            nil];

        [menu3 makeMenu:textfield3 titleArray:arrayNames3 valueArray: arrayNames3 targetView:self.view];

    }


}
于 2012-10-25T07:23:54.293 に答える