我正在尝试使用两个基本屏幕(主要和设置)创建一个应用程序。我使用导航控制器和segues从主要设置转换到设置,我将segue从设置(屏幕2)回到主要部分。这一切都很棒!
我想添加一个包含单元格中列出的帮助主题的表格,但我无法获取帮助按钮来选择正确的segue。我一直收到一个未被捕获的异常错误,因为程序正在尝试执行他准备segue操作并将数据发送回主屏幕。我很困惑如何解决这个问题。我使用导航控制器和segues代替按钮等更高效,似乎更麻烦!
#import "SignalViewController.h"
#import "SetUpViewController.h"
@interface SignalViewController ()
@end
@implementation SignalViewController
-(IBAction)unwindToSignalView:(UIStoryboardSegue *)segue
{
float minSlider = sensorMin; //Get Slider range values
float maxSlider = sensorMax;
sensorValueSlider.minimumValue = minSlider; //Set Slider Range
sensorValueSlider.maximumValue = maxSlider;
NSString* sensorMinD = [NSString localizedStringWithFormat:@"%.1f",sensorMin];//save default values next 9 lines
NSString* sensorMaxD = [NSString localizedStringWithFormat:@"%.1f",sensorMax];
NSString* signalMinD = [NSString localizedStringWithFormat:@"%.1f",signalMin];
NSString* signalMaxD = [NSString localizedStringWithFormat:@"%.1f",signalMax];
[labelY1 setText:sensorMinD];//set labels to match settings page next 3 lines
[labelY3 setText:sensorMaxD];
[labelX1 setText:signalMinD];
[labelX3 setText:signalMaxD];
//NSLog(@"signalMin: %f ", signalMin);
//NSLog(@"signalMax: %f ", signalMax);
//NSLog(@"sensorMin: %f ", sensorMin);
//NSLog(@"sensroMax: %f ", sensorMax);
}
#import "SignalViewController.h"
#import "SetUpViewController.h"
@interface SetUpViewController ()
@end
@implementation SetUpViewController
@synthesize sensorMinY1;
@synthesize sensorMaxY3;
@synthesize signalMinX1;
@synthesize signalMaxX3;
@synthesize sensLabel;
@synthesize sigLabel;
//@synthesize buttonHelpSetUp;
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
self.view.backgroundColor = [UIColor blueColor];
SignalViewController *passValue = [segue destinationViewController];
***passValue.sensorMin = [[sensorMinY1 text] floatValue];//sensorMinY1;***
passValue.sensorMax = [[sensorMaxY3 text] floatValue];//sensorMaxY3;
passValue.signalMin = [[signalMinX1 text] floatValue];//signalMinX1;
passValue.signalMax = [[signalMaxX3 text] floatValue];//signalMaxX3;
[passValue.labelSigUnits setText:sigLabel.text];
[passValue.labelSensUnits setText:sensLabel.text];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:signalMinX1.text forKey:@"X1"];
[defaults setValue:signalMaxX3.text forKey:@"X3"];
[defaults setValue:sensorMinY1.text forKey:@"Y1"];
[defaults setValue:sensorMaxY3.text forKey:@"Y3"];
}
这是有效的代码设置。我只添加了表视图控制器,然后将其嵌入到导航控制器中。然后我按住Ctrl键从帮助按钮(工具栏项目)拖动到新的导航控制器,并创建了一个自动segue,就像我之前所做的那样,我得到了错误,它正挂在上面的asterix中的行上。
答案 0 :(得分:0)
prepareForSegue
。如果您有多个segue,则必须为它们提供所有标识符,然后检查prepareForSegue
中的标识符并在那里执行正确的操作。
目前您假设任何 segue的目标控制器是SignalViewController。