2013-02-11 56 views
0

我有兩個搜索欄在視圖控制器中顯示。這很奇怪,因爲我在另一個vc中有相同的確切代碼,並且工作正常。 (在後臺搜索欄不應該在那裏)當只有一個實例化時,兩個UISearchBars出現在視圖控制器中

這裏是截圖:

enter image description here

我加入了代表:<UISearchBarDelegate, UISearchDisplayDelegate>

然後在.H:

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

in .m:

@synthesize searchBar; 
在viewDidLoad中

self.searchBar.frame = CGRectMake(204, 11, 107,44); 
    self.searchBar.delegate = self; 

    //customize the searchbar 
    UITextField *searchField = [self.searchBar valueForKey:@"_searchField"]; 
    [searchField setBackground:[UIImage imageNamed:@"search_panel.png"]]; 

    [self.searchBar setTintColor:[UIColor redColor]]; 
    UIImage *searchimg = [UIImage imageNamed:@"searchfield_bg.png"]; 

    for (UIView *subview in self.searchBar.subviews) { 
     if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) { 
      UIView *bg = [[UIView alloc] initWithFrame:subview.frame]; 
      bg.backgroundColor = [UIColor colorWithPatternImage:searchimg]; 
      [self.searchBar insertSubview:bg aboveSubview:subview]; 
      [subview removeFromSuperview]; 
      break; 
     } 
    } 

    [self.view addSubview:self.searchBar]; 

,就是這樣。我什麼都沒有做,在故事板視圖控制器搜索欄廈門國際銀行它的編程方式添加在viewDidLoad方法

感謝您的幫助

+1

如果故事板中沒有任何搜索欄,那麼爲什麼您要在搜索欄上放置IBOutlet?此外,你不是在上面的代碼中創建一個搜索欄,只是修改一個。 – rdelmar 2013-02-11 17:09:27

回答

1

如果您使用的是出口,你UISearchBar很可能也存在於故事板或xib。既然你也在viewDidLoad中創建它,你正在製作它的第二個副本。再看看你的故事板。

+0

謝謝。 .h只是屬性中沒有插座,故事板中沒有任何插座。如果我右鍵單擊故事板中的視圖控制器,則沒有提及搜索欄 – hanumanDev 2013-02-11 17:02:18

+1

如果您不使用它作爲IBOutlet,則應清除該屬性上的IBOutlet限定詞,以便清晰起見並避免意外連接它。 – Brendon 2013-02-11 17:08:43

+0

同意@Brendon。同樣,刪除IBOutlet也可以提供幫助,因爲如果在故事板中有一個搜索條忘記了自己,現在會發生運行時錯誤,並提醒您這個問題。 – Macondo2Seattle 2013-02-12 17:38:38

相關問題