2015-08-17 2 views
0

У меня есть 2 таблицы в одном контроллере представления: «studentsTable» и «professorsTable». Я хотел создать стандартную головную ячейку для обеих таблиц. Я подклассифицировал UItableViewCell и создал тип headCell. Затем назначается один headCell для обоих, если indexPath.row == 0. Все прошло гладко, однако есть одна проблема. Всякий раз, когда я нажимаю кнопку «addButton», я хочу, чтобы функция addStudent вызывалась, если она была на «studentsTable» и «addProfessor», если она была на «ProfessorsTable». Очевидно, я могу просто создать два headCells, по одному для каждой из таблиц, но мне интересно, есть ли более профессиональный способ справиться с этим, написав меньше кода. Вот код, который, я полагаю, может работать, если задано правильное условие «если». Заранее спасиборазличные методы на одной стандартной головкеКоллекция в func tableView (tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{ 

    var actionType:String=String() 

    if(/*WHAT CONDITION SHOULD I PUT?*/) 
    {actionType="addStudent"} 
    else 
    {actionType="addProfessor"} 


    if(indexPath.row==0) 
      { 
      var theHeadcell : headCell = tableView.dequeueReusableCellWithIdentifier("headCell") as headCell 

      // cell setup 

      if(actionType != "") 
       { 
        addButton.addTarget(self, action: NSSelectorFromString(actionType), forControlEvents: UIControlEvents.TouchUpInside) 
       } 
       return theHeadCell 
      } 

    else 
    { 
     if (tableView==self.studentsTable) 
      { 
       var cell : UITableViewCell = tableView.dequeueReusableCellWithIdentifier("studentsCell") as UITableViewCell 

        // cell setup 
        return cell 
      } 

     else 
      { 
        var cell : UITableViewCell = tableView.dequeueReusableCellWithIdentifier("ProfessorsCell") as UITableViewCell 

       // cell setup 
       return Cell 
      } 

    }   
} 

ответ

1
if tableView == self.studentsTable 
    {actionType = "addStudent"} 
else if tableView == self.professorsTable 
    {actionType = "addProfessor"} 
+1

спасибо много. Я перепутал что-то в коде, поэтому ваш ответ не работал раньше. Я исправил это сейчас. Спасибо –

+0

@TikoHarutyunyan Я думаю, вы можете попытаться судить по методу действия UIbutton, используя 'sender.superview.superview' (который должен быть tableView) – Sugar

Смежные вопросы