Ios segue后目标ViewController未更改

Ios segue后目标ViewController未更改,ios,objective-c,uiviewcontroller,Ios,Objective C,Uiviewcontroller,我的目标ViewController有许多标签和图像,需要根据以前的特定ViewController进行更改。我有一个segue设置,它应该改变这些,但由于某些原因,它不是,即使segue正在被调用 我的初始ViewController有一个按钮,该按钮有一个序列传递到下一个名为“aName”的ViewController。我可能错过了一些简单的东西,但我一直在遵循我的代码的另一部分,它做完全相同的事情,并且工作!我还测试了segue是否使用返回fine的NSLog成功调用。所有IBO出口也被正

我的目标ViewController有许多标签和图像,需要根据以前的特定ViewController进行更改。我有一个segue设置,它应该改变这些,但由于某些原因,它不是,即使segue正在被调用

我的初始ViewController有一个按钮,该按钮有一个序列传递到下一个名为“aName”的ViewController。我可能错过了一些简单的东西,但我一直在遵循我的代码的另一部分,它做完全相同的事情,并且工作!我还测试了segue是否使用返回fine的NSLog成功调用。所有IBO出口也被正确分配

初始视图控制器.m:

#import "dViewController.h"

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
        if ([segue.identifier isEqualToString:@"aName"]) {
            dViewController *dVC = (dViewController *)segue.destinationViewController;
            dVC.TitleLabel.text = @"abc";
            dVC.1Img.image = [UIImage imageNamed:@"somepath.jpg"];
            dVC.2Img.image = [UIImage imageNamed:@"somepath2.jpg"];
            [dVC.1Button setTitle:@"abcd" forState:UIControlStateNormal];
            [dVC.1Button setTitle:@"efgh" forState:UIControlStateNormal];

        }
目标视图控制器:

dViewController.h

    @property (strong, nonatomic) IBOutlet UILabel *TitleLabel;
    @property (strong, nonatomic) IBOutlet UIImageView *1Img;
    @property (strong, nonatomic) IBOutlet UIImageView *2Img;
    @property (strong, nonatomic) IBOutlet UIButton *1Button;
    @property (strong, nonatomic) IBOutlet UIButton *2Button;

编辑:再四处看看,我想我应该用一个代表。这看起来很复杂,也不确定从哪里开始。但我将尝试看看这个线程中的内容:

在segue.destinationViewController周围放上括号,如下所示:

        dViewController *dVC = (dViewController *)(segue.destinationViewController);

在segue.destinationViewController周围放上括号,如下所示:

        dViewController *dVC = (dViewController *)(segue.destinationViewController);

在segue.destinationViewController周围放上括号,如下所示:

        dViewController *dVC = (dViewController *)(segue.destinationViewController);

在segue.destinationViewController周围放上括号,如下所示:

        dViewController *dVC = (dViewController *)(segue.destinationViewController);

了解应用程序导航原则。来自苹果:


了解应用程序导航原则。来自苹果:


了解应用程序导航原则。来自苹果:


了解应用程序导航原则。来自苹果:


您必须为要更改的每个标签创建一个变量,并在viewDidLoad中将该变量分配到label.text

比如说

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

    if ([segue.identifier isEqualToString:@"aName"]) {
        dViewController *dVC = (dViewController *)segue.destinationViewController;
        dVC.titleString = @"abc";
        dVC.1Image = [UIImage imageNamed:@"somepath.jpg"];
        dVC.2Image = [UIImage imageNamed:@"somepath2.jpg"];
        dVC.1ButtonString=@"ButtonTitle";
        dVC.2ButtonString=@"ButtonTitle2";

    }
目的控制器

    @property (strong, nonatomic) IBOutlet UILabel *TitleLabel;    
    @property (strong, nonatomic) IBOutlet UIImageView *1Img;      
    @property (strong, nonatomic) IBOutlet UIImageView *2Img;      
    @property (strong, nonatomic) IBOutlet UIButton *1Button;  
    @property (strong, nonatomic) IBOutlet UIButton *2Button;  

    @property(strong,nonatomic)NSString *2ButtonString;  
    @property(strong,nonatomic)UIImage*1Image;  
    @property(strong,nonatomic)UIImage*2Image;  
    @property(strong,nonatomic)NSString* titleString;  
    @property(strong,nonatomic)NSString *1ButtonString;  
    @property(strong,nonatomic)UIImageView *1Img;  
    @property(strong,nonatomic)UIImageView *1Img;  



 - (void)viewDidLoad{

   self.TitleLabel.text = self.titleString;

   self.1Img.image = self.1Image;

   self.2Img.image = self.2Image;

   [self.1Button setTitle:self.1ButtonString];

   [self.2Button setTitle:self.1ButtonString];

}
希望它能帮助你,问题是

 dViewController *dVC = (dViewController *)segue.destinationViewController; 

您只带来控制器,而不是视图。IBOutlet属于视图,视图未加载我希望您理解

您必须为要更改的每个标签创建一个变量,并在ViewDiLoad中将变量分配到label.text

比如说

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

    if ([segue.identifier isEqualToString:@"aName"]) {
        dViewController *dVC = (dViewController *)segue.destinationViewController;
        dVC.titleString = @"abc";
        dVC.1Image = [UIImage imageNamed:@"somepath.jpg"];
        dVC.2Image = [UIImage imageNamed:@"somepath2.jpg"];
        dVC.1ButtonString=@"ButtonTitle";
        dVC.2ButtonString=@"ButtonTitle2";

    }
目的控制器

    @property (strong, nonatomic) IBOutlet UILabel *TitleLabel;    
    @property (strong, nonatomic) IBOutlet UIImageView *1Img;      
    @property (strong, nonatomic) IBOutlet UIImageView *2Img;      
    @property (strong, nonatomic) IBOutlet UIButton *1Button;  
    @property (strong, nonatomic) IBOutlet UIButton *2Button;  

    @property(strong,nonatomic)NSString *2ButtonString;  
    @property(strong,nonatomic)UIImage*1Image;  
    @property(strong,nonatomic)UIImage*2Image;  
    @property(strong,nonatomic)NSString* titleString;  
    @property(strong,nonatomic)NSString *1ButtonString;  
    @property(strong,nonatomic)UIImageView *1Img;  
    @property(strong,nonatomic)UIImageView *1Img;  



 - (void)viewDidLoad{

   self.TitleLabel.text = self.titleString;

   self.1Img.image = self.1Image;

   self.2Img.image = self.2Image;

   [self.1Button setTitle:self.1ButtonString];

   [self.2Button setTitle:self.1ButtonString];

}
希望它能帮助你,问题是

 dViewController *dVC = (dViewController *)segue.destinationViewController; 

您只带来控制器,而不是视图。IBOutlet属于视图,视图未加载我希望您理解

您必须为要更改的每个标签创建一个变量,并在ViewDiLoad中将变量分配到label.text

比如说

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

    if ([segue.identifier isEqualToString:@"aName"]) {
        dViewController *dVC = (dViewController *)segue.destinationViewController;
        dVC.titleString = @"abc";
        dVC.1Image = [UIImage imageNamed:@"somepath.jpg"];
        dVC.2Image = [UIImage imageNamed:@"somepath2.jpg"];
        dVC.1ButtonString=@"ButtonTitle";
        dVC.2ButtonString=@"ButtonTitle2";

    }
目的控制器

    @property (strong, nonatomic) IBOutlet UILabel *TitleLabel;    
    @property (strong, nonatomic) IBOutlet UIImageView *1Img;      
    @property (strong, nonatomic) IBOutlet UIImageView *2Img;      
    @property (strong, nonatomic) IBOutlet UIButton *1Button;  
    @property (strong, nonatomic) IBOutlet UIButton *2Button;  

    @property(strong,nonatomic)NSString *2ButtonString;  
    @property(strong,nonatomic)UIImage*1Image;  
    @property(strong,nonatomic)UIImage*2Image;  
    @property(strong,nonatomic)NSString* titleString;  
    @property(strong,nonatomic)NSString *1ButtonString;  
    @property(strong,nonatomic)UIImageView *1Img;  
    @property(strong,nonatomic)UIImageView *1Img;  



 - (void)viewDidLoad{

   self.TitleLabel.text = self.titleString;

   self.1Img.image = self.1Image;

   self.2Img.image = self.2Image;

   [self.1Button setTitle:self.1ButtonString];

   [self.2Button setTitle:self.1ButtonString];

}
希望它能帮助你,问题是

 dViewController *dVC = (dViewController *)segue.destinationViewController; 

您只带来控制器,而不是视图。IBOutlet属于视图,视图未加载我希望您理解

您必须为要更改的每个标签创建一个变量,并在ViewDiLoad中将变量分配到label.text

比如说

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

    if ([segue.identifier isEqualToString:@"aName"]) {
        dViewController *dVC = (dViewController *)segue.destinationViewController;
        dVC.titleString = @"abc";
        dVC.1Image = [UIImage imageNamed:@"somepath.jpg"];
        dVC.2Image = [UIImage imageNamed:@"somepath2.jpg"];
        dVC.1ButtonString=@"ButtonTitle";
        dVC.2ButtonString=@"ButtonTitle2";

    }
目的控制器

    @property (strong, nonatomic) IBOutlet UILabel *TitleLabel;    
    @property (strong, nonatomic) IBOutlet UIImageView *1Img;      
    @property (strong, nonatomic) IBOutlet UIImageView *2Img;      
    @property (strong, nonatomic) IBOutlet UIButton *1Button;  
    @property (strong, nonatomic) IBOutlet UIButton *2Button;  

    @property(strong,nonatomic)NSString *2ButtonString;  
    @property(strong,nonatomic)UIImage*1Image;  
    @property(strong,nonatomic)UIImage*2Image;  
    @property(strong,nonatomic)NSString* titleString;  
    @property(strong,nonatomic)NSString *1ButtonString;  
    @property(strong,nonatomic)UIImageView *1Img;  
    @property(strong,nonatomic)UIImageView *1Img;  



 - (void)viewDidLoad{

   self.TitleLabel.text = self.titleString;

   self.1Img.image = self.1Image;

   self.2Img.image = self.2Image;

   [self.1Button setTitle:self.1ButtonString];

   [self.2Button setTitle:self.1ButtonString];

}
希望它能帮助你,问题是

 dViewController *dVC = (dViewController *)segue.destinationViewController; 



您只带来控制器,而不是视图。IBOutlet属于视图,视图未加载我希望您理解

您是否检查过dVC不是零?您的视图控制器是否在导航控制器中?否则您将无法推到堆栈。@Tander您所说的nill是什么意思?@sumofighter666不,它们只是普通的视图控制器。我的意思是它们肯定在导航控制器中。您检查过dVC不是nil吗?您的视图控制器在导航控制器中吗?否则您将无法推到堆栈。@Tander您所说的nill是什么意思?@sumofighter666不,它们只是普通的视图控制器。我的意思是它们肯定在导航控制器中。您检查过dVC不是nil吗?您的视图控制器在导航控制器中吗?否则您将无法推到堆栈。@Tander您所说的nill是什么意思?@sumofighter666不,它们只是普通的视图控制器。我的意思是它们肯定在导航控制器中。您检查过dVC不是nil吗?您的视图控制器在导航控制器中吗?否则您将无法推到堆栈。@Tander您所说的nill是什么意思?@sumofighter666不,它们只是普通的视图控制器。我的意思是它们绝对应该在导航控制器中。是的,刚刚编辑过,是为了dVC它在xcode中是正确的。它是否转换到目标视图控制器?不,@synthesis没有更改它,仍然没有显示。如果它没有转换,则难怪没有写入标签/图像属性。我会检查序列图像板中的初始和目标VC,确保序列名称与指定的标识符匹配。抱歉,这意味着它正在转换,只是没有显示更改的信息。是的,刚刚编辑过,是为了dVC,在xcode中是正确的。它是否转换到目标视图控制器?否,@synthesis没有更改它,仍然没有显示。如果它没有转换,则难怪没有写入标签/图像属性。我会检查序列图像板中的初始和目标VC,确保序列名称与指定的标识符匹配。抱歉,这意味着它正在转换,只是没有显示更改的信息。是的,刚刚编辑过,是为了dVC,在xcode中是正确的。它是否转换到目标视图控制器?否,@synthesis没有更改它,仍然没有显示。如果它没有转换,则难怪没有写入标签/图像属性。我会检查序列图像板中的初始和目标VC,确保序列名称与指定的标识符匹配。抱歉,这意味着它正在转换,只是没有显示更改的信息。是的,刚刚编辑过,是为了dVC,在xcode中是正确的。它是否转换到目标视图控制器?否,@synthesis没有更改它,仍然没有显示。如果它没有转换,则难怪没有写入标签/图像属性。我会在故事板中检查你的初始和目标VC,并确保序列名称与指定的标识符匹配。对不起,这意味着它正在转换,只是没有显示更改的信息。这确实有效