как написать функцию target-c - PullRequest
0 голосов
/ 14 июня 2011

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

- (void)switchtheviews:(UIViewController*)coming over:(UIViewController*)going {    
[UIView beginAnimations:@"frame" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];   
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:viewController.view cache:YES];
[coming viewWillAppear:YES];
[going viewWillDisappear:YES];
[going.view removeFromSuperview];
[viewController.view insertSubview:coming.view atIndex:0];
[going viewDidDisappear:YES];
[coming viewDidAppear:YES];
[UIView commitAnimations];

  }

так, как я могу вызвать эту функцию?если я использую старый, я могу использовать

[[MyAppsAppDelegate App].switchViewController loading2menu];

, но этот новый, что я должен написать для вызова новой функции? спасибо

Ответы [ 2 ]

0 голосов
/ 14 июня 2011

Вы можете написать функцию C следующим образом:

void switchtheviews(UIViewController *coming, UIViewController *going)
{
...
/* there is no self here */
...
}

И используйте его где угодно в вашем коде:

switchtheviews(v1, v2);

Я не думаю, что это то, что вы хотите. Вы можете написать закрытый метод, чтобы сделать то же самое и сохранить все в своем классе. Попробуйте что-то подобное в своем файле .m (это личное сообщение, нет необходимости помещать его в .h):

// MegaCoolViewController.m

@interface MegaCoolViewController ()

- (void)_switchtheviews:(UIViewController*)coming over:(UIViewController*)going;

@end


@implementation MegaCoolViewController

#pragma mark - Private

- (void)_switchtheviews:(UIViewController*)coming over:(UIViewController*)going
{
/* do your thing, use self freely */
}

@end

Как вы можете прочитать в других ответах, существуют более простые способы переключения видов. Я просто отвечаю на синтаксическую часть вопроса.

0 голосов
/ 14 июня 2011

Я не думаю, что вам нужно использовать анимацию для того, что вы делаете.Это должно быть что-то вроде:

[objectName removeFromSuperview];
[superViewName addSubview:otherView];

Для вызова вашей функции это должно быть:

[object switchTheViews:viewController over:otherViewController];
...