好吧,这是我的第一篇文章,因为我需要 10 的声誉,所以无法上传图片,XD 但没关系:
嗨,伙计们,我需要将一个 label.text 从我的第二个或子视图控制器的 tableview 中的单元格传递到我的第一个或父视图控制器,我想推入一个单元格并返回字符串以加载到标签中从我的第一个视图控制器中,我确实使用了故事板中的 segues,我确实使用了协议和委托,但没有工作,在另一个问题中,答案或示例与我需要的相反,或者对于 xcode 版本来说是非常不同的方式,或者最好的方法是如何做到这一点?,在图片中,我使用按钮转到下一个视图控制器,以在我的第一个视图控制器中选择我想要的标签文本,我也使用 xcode 4.6 & storyboard & ARC, &有些代码行已被弃用,请帮帮我!& 多谢!!!,
来自玻利维亚的问候!!!n_n'
代码是这样的:
@interface FirstViewController : UIViewController <SecondTableViewControllerDelegate>
@property (copy, nonatomic) NSString *displayText;
@property (weak, nonatomic) IBOutlet UILabel *displayLabel;
@property (strong, nonatomic)IBOutlet UIButton *Next;
@end
@interface FirstViewController ()
@end
@implementation FirstViewController
@synthesize Next;
-(void)viewDidLoad
{
[super viewDidLoad];
if (![[NSUserDefaults standardUserDefaults] objectForKey:@"FIRST_TIME"])
{
NSLog(@"ES PRIMERA VEZ");
[Next sendActionsForControlEvents:UIControlEventTouchUpInside];
}
else
{
NSLog(@"NO ES PRIMERA VEZ");
}
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if (self.displayText)
{
self.displayLabel.text = self.displayText;
} else {
self.displayLabel.text = kDefaultDisplayText;
}
}
#pragma mark - Delegate methods
- (void)updateText:(NSString *)text {
self.displayText = text;
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if (![segue.identifier isEqualToString:@"toSecondTableview"]) {
return;
}
/*
SecondTableViewController *destinationController = segue.destinationViewController;
destinationController.delegate = self;
destinationController.editText = self.displayText;
*/
//-- if I pass data from the first view controller to the second right?
}
@end
in the second view
@protocol SecondTableViewControllerDelegate <NSObject>
@optional
- (void)updateText:(NSString *)text;
@end
@interface SecondTableViewController : UIViewController<UITableViewDelegate, UITableViewDataSource>
@property (weak, nonatomic) id<SecondTableViewControllerDelegate> delegate;
@property (copy, nonatomic) NSString *editText;
@property (weak, nonatomic) IBOutlet UITableView *myTable;
@interface SecondTableViewController ()
@end
@implementation SecondTableViewController
-(void)viewDidLoad
{
[super viewDidLoad];
[[NSUserDefaults standardUserDefaults] setObject:@"NO" forKey:@"FIRST_TIME"];
//---how use the UItable Methods?, how use the protocol method?
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.myArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"myArray";
myArrayCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
NSDictionary *conjunto = [self.jogArray objectAtIndex:indexPath.row];
cell.myLabel.text = [conjunto objectForKey:@"prueba"];
return cell;
}
或者协议委托必须在另一个视图控制器中?,我想在标签中显示来自下一个视图控制器的任何单元格的文本我该怎么办?