Xcode 将数据传回视图控制器不工作(iOS)
我看到有很多关于这个话题的帖子,但似乎没有一篇能解决我的问题 我需要一个视图控制器,它只有一个文本字段、一个导航栏按钮(称为save)和一个数字/标点键盘 另一个视图控制器有一个包含2行的静态表视图 工作流:当用户点击表中的第一行时,会出现第二个视图控制器(这已经起作用)。 然后,用户输入一个数字,点击“保存”时,应使用键入的数字设置表视图中第一行的详细信息标签 我已经设置了协议和委托,但出现了一些问题,因为第二视图控制器没有消失,而且细节标签也从未更新以反映此键入的编号 我被难住了。通过了大量的代码示例,尝试了很多东西,但仍然没有解决方案。非常感谢您的帮助 下面是这两个类的代码 第一视图(表视图) .h文件(hourlyRateDetialLabel是表视图中的详图标签): 第二类(带有文本字段和保存按钮的视图) .h文件Xcode 将数据传回视图控制器不工作(iOS),xcode,ios5,delegates,Xcode,Ios5,Delegates,我看到有很多关于这个话题的帖子,但似乎没有一篇能解决我的问题 我需要一个视图控制器,它只有一个文本字段、一个导航栏按钮(称为save)和一个数字/标点键盘 另一个视图控制器有一个包含2行的静态表视图 工作流:当用户点击表中的第一行时,会出现第二个视图控制器(这已经起作用)。 然后,用户输入一个数字,点击“保存”时,应使用键入的数字设置表视图中第一行的详细信息标签 我已经设置了协议和委托,但出现了一些问题,因为第二视图控制器没有消失,而且细节标签也从未更新以反映此键入的编号 我被难住了。通过了
提供的代码包括:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
priceCalculatorHrRateSettingsViewController *vc = [[priceCalculatorHrRateSettingsViewController alloc] init];
vc.settingsViewDelegate = self;
}
这将在选定单元格但从不显示它时创建控制器,但意外行为描述为:
…第二视图控制器不会消失
这些似乎相互矛盾。没有对1的准确描述。预期行为2。观察到的行为和3。实际的实现产生了观察到的行为,任何人都几乎不可能解决这个问题。请不要让我们猜测如何提供帮助。您提供的代码似乎不包括创建
价格计算器hr费率设置查看控制器
或设置其设置查看闸门
。鉴于此示例,无法确定您为什么看不到预期的行为。感谢您指出。。。我的创建设置如下:priceCalculatorHrRateSettingsViewController*vc=[[priceCalculatorHrRateSettingsViewController alloc]init];vc.settingsViewDelegate=self代码>但仍不工作表视图的数据源是谁?通常,当表视图的数据源更改并且您调用[tableView reloadData]时,表视图将自动更新代码>在didSelectRowAtIndexPath中,如何使用导航控制器的pushviewcontroller方法或使用[self-presentModalViewController:vc动画:是]?我使用的是一个静态表,所以我使用了一个推送序列来加载每一行的相应视图。。。
#import "priceCalculatorSettingsViewController.h"
#import "priceCalculatorHrRateSettingsViewController.h"
@interface priceCalculatorSettingsViewController ()
@end
@implementation priceCalculatorSettingsViewController
@synthesize hourlyRateDetialLabel;
- (void)viewDidLoad
{
[super viewDidLoad];
}
#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
priceCalculatorHrRateSettingsViewController *vc = [[priceCalculatorHrRateSettingsViewController alloc] init];
vc.settingsViewDelegate = self;
}
- (void) HourlyRateDidSave:(priceCalculatorHrRateSettingsViewController *)controller didSetHourlyRate:(NSString *)rateValue{
self.hourlyRateDetialLabel.text = rateValue;
[self dismissViewControllerAnimated:YES completion:nil];
}
@end
#import UIKit/UIKit.h
@class priceCalculatorHrRateSettingsViewController;
@protocol SettingsViewControllerDelegate <NSObject>
- (void)HourlyRateDidSave:
(priceCalculatorHrRateSettingsViewController *)controller didSetHourlyRate:(NSString *)rateValue;
@end
@interface priceCalculatorHrRateSettingsViewController : UIViewController<UITextFieldDelegate>
@property (strong, nonatomic) IBOutlet UITextField *setHourlyRate;
@property (weak, nonatomic) id<SettingsViewControllerDelegate> settingsViewDelegate;
- (IBAction)saveHourlyRateValue:(id)sender;
@end
#import "priceCalculatorHrRateSettingsViewController.h"
@interface priceCalculatorHrRateSettingsViewController ()
@end
@implementation priceCalculatorHrRateSettingsViewController{
}
@synthesize setHourlyRate = _setHourlyRate;
@synthesize settingsViewDelegate;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
//Automatically show the keybaord
[_setHourlyRate becomeFirstResponder];
}
- (void)viewDidUnload
{
[self setSetHourlyRate:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (IBAction)saveHourlyRateValue:(id)sender {
[self.settingsViewDelegate HourlyRateDidSave:self didSetHourlyRate:_setHourlyRate.text];
}
@end
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
priceCalculatorHrRateSettingsViewController *vc = [[priceCalculatorHrRateSettingsViewController alloc] init];
vc.settingsViewDelegate = self;
}