菜鸟教程小白 发表于 2022-12-12 16:15:10

ios - 在 View Controller 之间传递核心数据项


                                            <p><p>我正在制作一个需要核心数据来存储一些信息的应用程序,我已经设法让该应用程序创建实体并添加信息,但是我无法对其进行编辑</p>

<p>我有一个 ListViewController ,它显示此信息的简要大纲,另一个 ListViewController 充当模态视图以允许用户编辑他们的信息。</p>

<p>当用户点击列表项时,我需要应用程序显示模态视图 Controller ,其中所选信息从核心数据模型加载到相关文本框中,并且当用户单击保存时,我需要保存更改</p>

<p>当用户点击列表项时,信息没有传递到模态视图中,NSLog 向我确认 - 它告诉我我在 prepareForSegue: 方法中点击的项目,并且在模态视图的 viewDidLoad 中为空: </p>

<p>代码如下:</p>

<p>这是来自 MedsListViewController ,它显示信息</p>

<pre><code>- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
}   //selMed declared at top of file as NSManagedObject *selMed;
    selMed = ;
    NSLog(@&#34;SELECTED MED: %@&#34;, );
    UIStoryboardSegue *segueString = ;

    NSLog(@&#34;%@&#34;,segueString);

NSLog(@&#34;%@ %@&#34;, @&#34;MED NAME&#34;,);

;

}

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

if () {

NSLog(@&#34;%@ %@&#34;, @&#34;SELMED AT PREPARE FOR SEGUE: &#34;,selMed);
UINavigationController *nav = segue.destinationViewController;
MedsEditViewController *dest = (MedsEditViewController *)nav.topViewController;
    dest.med = selMed;
    dest.chName = ;//chosen med&#39;s name
}

    }
}
</code></pre>

<p>这里是 MedsEdit.m</p>

<pre><code>#import &#34;MedsEditViewController.h&#34;
#import &#34;fibroMappAppDelegate.h&#34;
#import &lt;CoreData/CoreData.h&gt;

@interface MedsEditViewController ()
{
    NSManagedObjectContext *context;
}
@end

@implementation MedsEditViewController


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



- (void)viewDidLoad
{
    ;

    NSLog(@&#34;%@ %@&#34;, @&#34;recieved MEDICATION&#34;, self.med);
    NSLog(@&#34;%@ %@&#34;, @&#34;recieved Name&#34;, _chName);
    fibroMappAppDelegate *delegate = [delegate];
    context = ;

    tbName.text = _chName;
}
</code></pre>

<p>chName 在 .h 文件中声明为 NSString</p>

<p>有人可以帮我弄清楚我做错了什么吗?以及如何解决它.....在过去的几个月里我花了很多时间断断续续地解决这个问题</p>

<p>这是准备segue开始后的日志副本</p>

<p>2013-11-07 14:21:15.475 fibromapp 选择的 MED:med1</p>

<p>2013-11-07 14:21:15.476 fibromapp editMeds</p>

<p>2013-11-07 14:21:15.477 fibromapp MED NAME(实体:药物;ID:0x8a6b0a0;</p>

<p>数据:{</p>

<p>剂量 = 3;</p>

<p>lastTaken = nil;</p>

<p>最大剂量 = 5;</p>

<p>名称 = med1;</p>

<p>类型 = 毫克;</p>

<p>})</p>

<p>2013-11-07 14:21:15.479 fibromapp 警告:在演示过程中尝试演示!</p>

<p>---------------------下面是MedsEdit View 中的DidLoad------ ------</p>

<p>2013-11-07 14:21:15.497 fibromapp 收到 MEDICATION (null)</p>

<p>2013-11-07 14:21:15.498 fibromapp 收到名称(空)</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><code></code> 应该是 <code></code> 开始...</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 ViewController 之间传递核心数据项,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/19837760/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/19837760/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 View Controller 之间传递核心数据项