2016-07-04 8 views
0

Frage ist ähnlich wie diese: Setting searchBar.text in view did loadVorbelastung String in Suchleiste und die Suche von Segue

Ich habe mein Stichwort von V1 ohne Probleme V2 vorbei; Ich versuche, es als Suchleiste Text & Suche von vorherigen Segment setzen.

Zeichenfolge heißt searchText.

Ich habe

versucht
self.searchBar.text = self.searchText; 

in viewWillAppear & viewDidLoad von V2, aber nichts ist in meiner Suchleiste zeigt nach oben.

Wie kann ich meine searchText in die Suchleiste und filtern meine Tabelle nach dem Übergang von V1 zu V2?

Antwort

1

Sind Sie sicher, dass die Zeichenfolge nicht leer ist, bevor Sie sie als Suchleistentext festlegen?

Der folgende Code funktioniert perfekt für mich.

@interface ViewController(){ 
    NSString *searchText; 
} 

@property (weak, nonatomic) IBOutlet UISearchBar *searchBar; 

@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    searchText = @"I love ice cream!"; 
} 

-(void)viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:animated]; 
    self.searchBar.text = searchText; 
} 

Dies ist eine Methode, wie Sie überprüfen können, ob der String leer ist:

self.searchBar.text = (searchText == nil || searchText == (id)[NSNull null] || searchText.length == 0) ? @"To bad, an empty string" : searchText; 
+0

nicht leer, aber 'self.searchBar.text = searchText' scheint keine Reaktion. – user3306356

+0

Haben Sie nach dem Einstellen des Textes einen Haltepunkt versucht? Sie können den Wert von "searchText" in der Konsole (po self.searchText) oder in der Variablenansicht überprüfen. – RM335

+0

Ja, ich sehe meinen Wert in der Konsole. In viewWillAppear habe ich 'NSLog (@"% @ ", self.searchText);' direkt vor 'self.searchBar.text = self.searchText;' – user3306356