2012-03-27 3 views
3

Я установил раскадровку Xcode моего сверла вниз, чтобы разветвиться до двух подробных представлений.Условный вызов из UITableView в DetailView в зависимости от состояния объекта

Я хочу, чтобы он перешел к одному из них на основе состояния объекта бюджета, который я нажал в виде таблицы. Если объект бюджета не был инициализирован, я хочу перейти к представлению инициализации. Если он был инициализирован, я хочу, чтобы он перешел к подробному представлению.

До сих пор, это то, что у меня есть ...

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

    /* 
    When a row is selected, the segue creates the detail view controller as the destination. 
    Set the detail view controller's detail item to the item associated with the selected row. 
    */ 

    if ([[segue identifier] isEqualToString:@"showDetailsOfBudget"]) 
    { 

     NSIndexPath *indexPath = [self.budgetsTable indexPathForSelectedRow]; 
     BudgetDetailsViewController *detailsViewController = [segue destinationViewController]; 
     detailsViewController.budget = [self.budgetPlan.budgets objectAtIndex:indexPath.row]; 
    } 
} 

Конечно, это только делает его непосредственно перейти к просмотру деталей. Я хочу, чтобы он использовал «initializeBudget» segue для случая, когда случай budget.initialized = false Как реализовать метод performSegue:withIdentifier: для этого?

ответ

4

Вам необходимо устранить способ performSegueWithIdentifier в зависимости от вашего состояния.

Что-то вроде:

if ([self.budgetPlan.budgets count] > 0) { 
    [self [email protected]"showDetailsOfBudget"]; 
} else { 
    [self [email protected]"createBudget"]; 
} 
+1

ли это путь удаления SEGUE от объекта, который в настоящее время постукивания, чтобы стрелять и есть переход идет от контроллера представления вместо этого. Затем используйте пользовательскую функцию, активированную действием на исходном объекте. – lnafziger