2016-11-07 1 views
0
senden

Ich habe Situation, wo ich Textfield Wert auf eine Schaltfläche klicken müssen in 1. ViewController zu 2. Ansicht Controller und Anzeige in der Tabellenansicht, aber nichts wird in 2. Ansicht Controller angezeigt mit dis CodeWie Textfield Wert zu Tableview in einem anderen Viewcontroller

viewcontroller.h 
@interface ViewController : UIViewController 
@property (strong, nonatomic) IBOutlet UITextField *textfiled; 

@end 

viewcontroller.m 


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

    NextViewController*nxt=segue.destinationViewController;  
    nxt.sr=_textfiled.text; 

    } 

NextviewController.h 

@interface NextViewController : UIViewController 
@property (strong,nonatomic)NSMutableArray*arr; 
@property (strong, nonatomic) IBOutlet UITableView *table; 
@property(strong,nonatomic) NSString*sr; 

Nextviewcontroller.m 

@interface NextViewController()<UITableViewDataSource> 

//@property(strong,nonatomic)NSMutableArray*finalarr; 
@end 

@implementation NextViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [_arr addObject:_sr]; 
    [_table reloadData]; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 

    return _arr.count; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
      UITableViewCell*cell=[tableView dequeueReusableCellWithIdentifier:@"cell"]; 
      cell.textLabel.text=[_arr objectAtIndex:indexPath.row]; 
      return cell; 
} 
+0

Verwenden Sie Breakpoints, um den Prozess bei jedem wichtigen Schritt zu stoppen (bereiten Sie auf "segue", "viewdidload", "cellforrow" vor). Und schauen Sie, wo Ihre Zeichenfolge festgelegt ist und wo sie gelesen wird. Sie werden * leicht * finden, wo die Daten fehlen, und Sie können nachforschen. Dies ist ein sehr, sehr einfaches Problem, das Sie nicht für Stackoverflow fragen müssen. –

Antwort

0

können Sie NSUserDefaults für das Bestehen wie Cookies oder Session in Web

+0

ich bin neu in der ios-entwicklung. können Sie genauer sein? ist die Möglichkeit, mit preparedforsgue Methode – Nishanth

+0

zu tun Verwenden Sie nicht NSUserDefaults für diese, es ist sehr, sehr schlechte Praxis. Zu Ihrer Information, NSUserDefaults ist ein persistenter Speicher von Schlüsseln und Werten, den Sie normalerweise für Dinge wie ... erinnern Benutzernamen, oder einige dauerhafte Einstellungen verwenden. Sie verwenden das nicht, um Daten jemals zu übergeben. –

+0

@Nishanth nicht schlecht für JUST Übung, wenn Sie nicht nuserdefault verwenden möchten, können Sie void verwendeten Parameter von zweiten Controller aufrufen, um in ersten Controller übergeben –

0
//The below should not be used in prepare segue.use in any button action. 

if(!secondVC) { 
secondVC = [UIStoryboard storyboardWithName:@"Main" 
           bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"SecondVCIdetifier"]; 
} 
secondVC.tempString = tf.text; 
[self presentViewController:secondVC animated:YES completion:nil]; 
+0

- (void) prepareForSegue: (UIStoryboardSegue *) Segment Absender: (ID) Absender { NextViewController * nxt = segue.destinationViewController; NSLog (@ "% @", _ Textdatei); nxt.sr = _textfiled.text; } – Nishanth

+0

Ich habe dies in preparefrsegue geschrieben, aber was sollte in Viewdidload von 2nd View Controller geschrieben werden – Nishanth

+0

zuerst Sie können den Text in TempString sehen? Sie möchten diese Zeichenfolge in die Tabellenansichtszelle einfügen? Wenn ja, schreibe [tableView reloadData] in NextViewController viewdidload method; – MuraliMohan

0

Blick auf [_arr addObject:_sr]; zuerst verwenden. Sehen Sie nach, ob der _sr-Wert leer ist oder nicht. Wenn ja, ist Ihr Problem vor, wenn nicht, Ihr Problem ist danach.

Von dort aus werden Sie in der Lage sein, das genaue Problem zu lokalisieren. Von der schnellen Lektüre würde ich sagen, dass Sie entweder die Zeichenketten-Daten überhaupt nicht erhalten, oder Sie verwenden keine Überfahrt und deshalb wird die Vorberei- tung nicht empfohlen.

Erfahren Sie, wie Sie Haltepunkte verwenden. Wenn du nicht weißt wie, schau es dir an, es ist unglaublich einfach und es sind 70% deiner Arbeit.

Mit diesem Rat allein können Sie Ihr Problem beheben, und viele weitere kommen.

Verwandte Themen