gpt4 book ai didi

ios - 'NSInvalidArgumentException',原因 : '-[UINavigationController setMed:]: unrecognized selector sent to instance 0x746dda0'

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:56:11 25 4
gpt4 key购买 nike

我正在开发一款应用程序,可以帮助患有某些健康问题的人管理他们的药物。我创建了一个模式来添加有效的药物并使用核心数据保存新药物。

我现在正试图让人们在保存药物后对其进行编辑。为此,我试图将药物的托管对象发送到“fibromappMedsEditViewController”,并在该类的 viewDidLoad 方法中分配信息。

我一直收到这个错误:

'NSInvalidArgumentException', reason: '-[UINavigationController setMed:]: unrecognized selector sent to instance 0x746dda0' 

谁能告诉我我做错了什么?

fibromappMedsListViewController.m中的相关方法

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{ //selMed declared at top of file as NSManagedObject *selMed;
selMed = [self.meds objectAtIndex:indexPath.row];
NSLog(@"SELECTED MED: %@",[selMed valueForKey:@"name"] );
UIStoryboardSegue *segueString = [NSString stringWithFormat:@"%@",@"editMeds"];

NSLog(@"%@",segueString);

[self performSegueWithIdentifier:@"editMeds" sender:indexPath];

}

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{


NSLog(@"%@",segue.destinationViewController);

NSLog(@"%@",[selMed valueForKey:@"name"] );

fibroMappMedsEditViewController *dest = segue.destinationViewController;
dest.med = selMed;


}

fibroMappMedsEditViewController.h

#import <UIKit/UIKit.h>

@interface fibroMappMedsEditViewController : UITableViewController
- (IBAction)saveChanges:(id)sender;
- (IBAction)deleteBtnPressed:(id)sender;
- (IBAction)dosageChanged:(id)sender;
- (IBAction)maxDosageChanged:(id)sender;
- (IBAction)cancel:(id)sender;
- (IBAction)typeChanged:(id)sender;

@property (weak, nonatomic) IBOutlet UITextField *tbName;
@property (weak, nonatomic) IBOutlet UITextField *tbDose;
@property (weak, nonatomic) IBOutlet UITextField *tbMaxDose;
@property (weak, nonatomic) IBOutlet UITextField *tbType;
@property (weak, nonatomic) IBOutlet UIStepper *stepperDose;
@property (weak, nonatomic) IBOutlet UIStepper *stepperMaxDose;
@property (weak, nonatomic) IBOutlet UISegmentedControl *changeMeasure;
@property (strong, nonatomic) NSManagedObject *med;

@end

fibroMappMedsEditViewController.m - 只是我更改的影响 Controller 加载方式的部分

#import "fibroMappMedsEditViewController.h"
#import "fibroMappAppDelegate.h"
#import <CoreData/CoreData.h>

@interface fibroMappMedsEditViewController ()

@end

@implementation fibroMappMedsEditViewController


@synthesize tbName;
@synthesize tbDose;
@synthesize tbMaxDose;
@synthesize tbType;
@synthesize med;
double dose;
double maxDose;

- (void)viewDidLoad
{
[super viewDidLoad];

tbName.text = [med valueForKey:@"name"];//name is a string in the model
tbDose.text = [med valueForKey:@"dose"];//dose is a double in the model
tbMaxDose.text = [med valueForKey:@"maxDose"];//maxDose is a double in the model
tbType.text = [med valueForKey:@"type"];//type is a string in the model

}

如果您需要查看其他内容,请直接询问。

另外,我正在为这个应用程序使用 Storyboard。

最佳答案

从该日志中可以看出,您的 fibroMappMedsEditViewController(应该以大写字母 BTW 开头)嵌入在导航 Controller 中。您需要访问该导航 Controller 的 Root View Controller 。

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
UINavigationController *nav = segue.destinationViewController;
fibroMappMedsEditViewController *dest = (fibroMappMedsEditViewController *)nav.topViewController;
dest.med = selMed;
}

关于ios - 'NSInvalidArgumentException',原因 : '-[UINavigationController setMed:]: unrecognized selector sent to instance 0x746dda0' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18448103/

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