2011-04-20 63 views

回答

3

蘋果的示例源代碼這裏是你可以用什麼,

UITableView *eventTableView = [[yourEventController.view subviews]objectAtIndex:0]; 

eventTableView是參考你的EKEventViewController的的tableView現在你可以自定義。

謝謝,

+0

運行完美,謝謝。 – 0SX 2011-04-20 04:11:22

+1

你能幫我嗎?我可以怎麼做EKEventEditViewController – 2011-10-13 12:17:28

+0

不要這樣做。它有可能會在某一天崩潰。永遠不要編寫假定具體子視圖結構的代碼。 – rmaddy 2016-01-19 03:45:01

5

你不應該只抓住索引:0的子視圖。這可能適用於您當前的代碼,但如果Apple對View進行更改,它可能會在未來的IOS版本中崩潰。

這是更多的「面向未來」

for (UIView *searchTableView in [yourEventController.view subviews]) { 

    if ([eventTableView isKindOfClass:[UITableView class]]) { 
     @try { 
      // change stuff to eventTableView 

      for (UIView *eventTableViewCell in [eventTableView subviews]) { 

       if ([eventTableViewCell isKindOfClass:[UITableViewCell class]]) { 
        @try { 
         [(UITableViewCell *)eventTableViewCell setBackgroundColor:[UIColor clearColor]]; 
        } 
        @catch (NSException * e) { 
        } 
       } 
      } 


     } 
     @catch (NSException * e) { 
     } 
    } 
} 

記住所有嘗試的和漁獲!如果蘋果對EKEventViewController進行了更改,那麼代碼可能仍然有效,並且如果更改會破壞向後兼容性,它也不會崩潰。

0

邁克爾格雷的回答沒有爲我工作的iOS7,對於EKEventEditViewController

也許EKEventEditViewController的實現是不同的。

這裏是我使用的代碼:

for (UIViewController *controller in ekEventEditViewController.childViewControllers) { 
      if ([controller isKindOfClass:[UITableViewController class]]) { 
       NSLog(@"UITableViewController in EKEventViewController"); 
      } 
} 
+0

EKEventEditViewController與EKEventViewController稍有不同,因此它是UINavigationController。你可以做的是通過設置你的EKEventEditViewController的委託屬性給一些控制器(這個委託屬性實際上是從UINavigationController繼承的),並使用委託方法willShowViewController來獲取UITableView。然後從那裏搜索你的目標細胞。以下鏈接提供了一些詳細信息:http://stackoverflow.com/questions/14813240/how-to-customise-ekeventeditviewcontroller – Steve 2015-10-19 01:27:09