gpt4 book ai didi

ios - 如何通知 Controller 需要更新

转载 作者:行者123 更新时间:2023-12-01 16:54:26 25 4
gpt4 key购买 nike

我正在使用 this code在 html 代码中“模拟”一个下拉菜单。我在我的页面上添加了 2 个下拉菜单。当我在第一个下拉菜单中选择一个项目时,需要通知我的 Controller ,并且需要在此通知中提供来自所选下拉项目的所选 ID。每当在第一个下拉列表中选择了一个项目时,我如何通知我的 Controller ?以及如何使用第一个下拉列表中选择的 id 打包通知?

我使用以下代码初始化下拉列表:

ddDuration = [[UIDropDownMenu alloc] init];
[ddDuration makeMenu:txtDurationId titleArray:arrDurationIds valueArray: arrDurationNames targetView:self.view];
[ddDuration setDropdownTextColor:[UIColor whiteColor]];
[ddDuration setDropdownBackgroundColor:[UIColor darkGrayColor]];
arrDurationsIdarrDurationNames包含相同数量的元素。第一个包含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]];
}

最佳答案

您可以在下载代码的同一页面中找到解决方案。检查这个

[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];

}


}

关于ios - 如何通知 Controller 需要更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13063134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com