1. Добавить другой контроллер представления в «didFinishLaunchingWithOptions»
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UINavigationController *homeNav = [storyboard instantiateViewControllerWithIdentifier:@"NavigationControllerView"];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"SplashViewController"];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = homeNav;
[self.window makeKeyAndVisible];
[(UINavigationController *)self.window.rootViewController pushViewController:viewController animated:NO];
}
2.В просмотре была загружена функция SplashView Controller
[self performSelector:@selector(removeSplashScreenAddViewController) withObject:nil afterDelay:2.0];
3.В методе removeSplashScreenAddViewController вы можете добавьте свой главный контроллер вида, например .-
- (void) removeSplashScreenAddViewController {` UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UINavigationController *homeNav = [storyboard instantiateViewControllerWithIdentifier:@"HomeNav"];
UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:viewControllerName];
UIWindow *window = [StaticHelper mainWindow];
window.rootViewController = homeNav;
[window makeKeyAndVisible];
[(UINavigationController *)window.rootViewController pushViewController:viewController animated:NO];`}
процитировано из АЦП
Если атрибут выражен как прилагательное, формат:
- (void)setAdjective:(BOOL)flag; - (BOOL)isAdjective;
Например:
- (void)setEditable:(BOOL)flag; - (BOOL)isEditable;
Если атрибут выражен в виде глагола, формат будет следующим:
- (void)setVerbObject:(BOOL)flag; - (BOOL)verbObject;
Например:
- (void)setShowsAlpha:(BOOL)flag; - (BOOL)showsAlpha;
Глагол должен быть в простом настоящем времени.
| K <
Вы хотели бы использовать тот, который работает с KVO, KVC и привязками и т. Д.
Я помню, как читал это в Документах, которые KVO et al. будет искать , это <ключ>
, набор <ключ>
, а также get <ключ>
и многие другие, например countOf < key>
Контрольный список соответствия KVC объясняет это гораздо лучше, чем я когда-либо мог сделать.
Я не думаю, что это действительно имеет значение, поскольку KVO рассмотрит как
, так и
.
Looking на классах iPhone наиболее распространенный шаблон, который я видел, это:
@property (nonatomic, getter = isHidden) BOOL hidden;
Это позволяет вам получить доступ к свойству следующими способами:
obj.hidden = YES; // (1)
BOOL hidden = obj.hidden; // (2)
BOOL hidden = [obj isHidden]; // (3)
Но не:
BOOL hidden = obj.isHidden; // (4)
CalStore не следует этому соглашению. Вам придется использовать строку 4 вместо строки 2.
Соглашение определенно должно выполняться это ...
для добытчиков BOOL. Причина, по которой вы видите подобный набор свойств в CalStore, наиболее вероятна, потому что он доступен только для чтения и записан таким образом для базовой читабельности файла заголовка, поскольку:
@property(readonly) isEditable;
обычно легче читать, чем:
@property(readonly, getter=isEditable) editable;
Для первого типа свойства, в вашей реализации вы можете сделать одно из:
@synthesize isEditable = editable;
или просто определить метод доступа:
- (BOOL)isEditable(void) { return editable; }
Это оставляет интерфейсный файл (заголовок) более легким для чтения потенциальным пользователем.
Пример CalStore, кажется, нарушает соглашение. Я бы придерживался того, чтобы в имени свойства, в отличие от имени метода, не было "is".