我很难将我的数据从UIContainerView
转移到另一个UIContainerView
。例如:我有2个容器,分别是calculatorContainer
和displayResultContainer
。因此,当我按“=”按钮计算结果时,我希望它显示在displayResultContainer
中。我已经尝试了使用segue方法和parentViewController
访问权限的不同选项,但仍然没有运气。
答案 0 :(得分:1)
使用代表。
步骤:
从第一个UIContainerView,将委托方法调用到父视图控制器。
然后,父视图控制器将值传递给第二个UIContainerView。
答案 1 :(得分:1)
有两种可能性。 1.使用appDelegate。使用app delegate中的属性在容器之间传递数据。 把它放在第一个容器中
MyAppdeleagte appDelegate=[[UIApplication sharedApplication]delegate];
appDelegate.dataToPass=dataToPass;
在第二个容器中
MyAppdeleagte appDelegate=[[UIApplication sharedApplication]delegate];
dataToPass=appDelegate.dataToPass;
2.使用ParentViewController。
第一个容器中的
ParentViewController parent=(ParentViewController *)[self parentViewController];
parent.dataToPass=dataToPass;
在第二个容器中
ParentViewController parent=(ParentViewController *)[self parentViewController];
data=parent.dataToPass;
答案 2 :(得分:0)
这是一个简单的方法,但首先你应该知道这个方法适用于前向流而不是后向(在后向流中你需要一个叫做委托的东西):
View 1 = calculator
View 2 = result display.
在view2中,在NSString
文件中获取文本字段和.h
:
@property(nonatomic,strong) NSString *myResult; //to contain the result
@property(nonatomic,strong) IBOutlet UITextfield *myResultText; // to display the result
在第一个视图(view1)中输入输入并添加按钮,例如(加+)等:
@property(nonatomic,strong) IBOutlet UIButton *addition;
将该插座(按钮)与视图控制器连接。然后为该按钮添加一个方法并将其连接到该按钮:
-(int)addFunc;
然后从您在第一个视图(input1TextField
和input2TextField
)中创建的2个文本字段中获取用户输入:
在addFunc
内写:
(int)addFunc{
int input1,input2,result;
input1 = self.input1TextField.text;
input2 = self.input2TextField.text;
result = input1+input2;
return result;
}
现在在IBaction
方法内写:
-(IBAction)myIbaction{
[self performSegueWithIdentifier @"seguename", sender :self]; // set the segue name and fill it here.
SecondViewController * sec = [segue destinationViewController];
int result = [self addFunc];
sec.myResult = (NSString)result;
}
现在在viewDidLoad
方法的第二个视图(view2)中写:
-(void)viewDidLoad{
self.myResultText = self.myResult;
}
它会显示你的结果。 不知道它是否有帮助,但你肯定会得到这样的图片,这就是你将如何执行它。 希望它有所帮助。
答案 3 :(得分:0)
您必须在第二个UIContainerView
:
UIContainerView2
-(id)initWithsetresult:(Int)Result {
int showPreResult = result;
return self;
}
按钮操作:
antagonist = [[UIContainerView2 alloc]initWithsetresult: calculateResult];