Условный переход от UITableView к DetailView в зависимости от состояния объекта

Я настроил раскадровку Xcode моей таблицы детализации, чтобы перейти к двум подробным представлениям.

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

Пока это то, что у меня есть ...

- (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" в случае budget.initialized = false. Как мне реализовать performSegue:withIdentifier: метод для этого?


person lorenzoid    schedule 27.03.2012    source источник


Ответы (1)


Вам нужно отключить метод performSegueWithIdentifier в зависимости от вашего состояния.

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

if ([self.budgetPlan.budgets count] > 0) {
    [self performSegueWithIdentifier@"showDetailsOfBudget"];
} else {
    [self performSegueWithIdentifier@"createBudget"];
}
person LJ Wilson    schedule 27.03.2012
comment
Сделайте это, удалив переход с объекта, который вы в данный момент нажимаете, чтобы запустить его, и вместо этого отправьте переход из контроллера представления. Затем используйте настраиваемую функцию, запускаемую действием над исходным объектом. - person lnafziger; 27.03.2012