我的问题是我的viewcontroller上有一个文本字段,应由用户填写并提供填充文本文件的选项,文本字段前面有一个箭头按钮。单击它打开一个带有选项列表的新viewcontroller。因此,当用户单击该视图控制器中的任何选项时,数据将自动填充该文本字段,并且用户将返回上一个viewcontroller。我不能在其中使用preprefor segue,所以请提供答案。如果我遗失了某些东西让我知道我会评论或编辑。
答案 0 :(得分:1)
您可以使用NSNotificationCenter
填写UITextField
。将观察者添加到您要填充viewController
的第一个class
textField
。在viewDidLoad
-
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(fillMyTextField:) name:@"fillMyTextField" object:nil];
而不是在同一个类中添加selector
方法 -
- (void)fillMyTextField:(NSNotification *)notification
{
self.myTxtField.text = (NSString *)notification.userInfo;
}
现在,您可以在其他viewController
class
中选择textField
的数据。在选择数据的方法中写下面的代码,如 -
- (IBAction)selectDataAndBackToPreviosVC:(UIButton*)selectedOptionBtn {
id object=[NSString stringWithFormat:@"%@",selectedOptionBtn.titleLabel.text];
[[NSNotificationCenter defaultCenter] postNotificationName:@"fillTextField" object:nil userInfo:object];
[self.navigationController popViewControllerAnimated:YES];
}
在此我使用navigationViewController
使用Push
和Pop
viewControllers
,我在选项UIButton
中有一些viewController
。我在myTextField
上传递了IBAction
选项的按钮标题。
答案 1 :(得分:0)
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(fillTextFieldAction:) name:@"fillTextField" object:nil];
- (IBAction)fillTextFieldAction:(NSNotification *)notification
{
textField.text = (NSString *)notification.object
}
[[NSNotificationCenter defaultCenter] postNotificationName:@"fillTextField" object:nil userInfo:textFieldInfo];
答案 2 :(得分:0)
在textfield Define Below方法(添加通知观察者)
的类中在viewDidLoad
中 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(fillTextField:)
name:@"fillTextField"
object:nil];
- (IBAction)fillTextField:(NSNotification *)sender
{
textField.text = (NSString *)notification.object
}
在另一个类中,您在日期选择操作
中选择以下方法设置日期[[NSNotificationCenter defaultCenter] postNotificationName:@"fillTextField" object:nil userInfo:textFieldInfo];
答案 3 :(得分:0)
您可以使用NSNotification:
在View控制器ofTextField中添加此
- (void) viewDidLoad
{
//Your rest of code then below statement
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(receiveTextNotification:)
name:@"TestNotification"
object:nil];
}
- (void)receiveTextNotification:(NSNotification *)notification {
NSLog(@"%@ updated", [notification userInfo]);
}
- (void) dealloc
{
// If you don't remove yourself as an observer, the Notification Center
// will continue to try and send notification objects to the deallocated
// object.
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
在按钮的View控制器中,在按钮上单击添加:
- (IBAction)fillTextFieldAction: (id) sender {
// All instances observing the `TestNotification` will be notified
[[NSNotificationCenter defaultCenter] postNotificationName:@"TestNotification" object:self userInfo:text]; //Object here can be any changed value .
}