我之所以提出这个问题只是因为我对寻找答案感到沮丧。
我有一个带有facebook登录界面的应用程序,如果用户已经登录到facebook,我希望更改根视图控制器。 我发现了如何检查用户是否已登录,但我似乎无法找到如何正确地从AppDelegate更改rootViewcontroller。 我要展示的下一个视图有导航控制器,所以我也想展示它。
我遇到的下一个问题是我无法弄清楚如何在UICollectionView中为单元格添加删除按钮。 我希望它被隐藏起来,长按其中一个单元格后,所有按钮都会显示在单元格上。 我想出了如何添加长按手势,而不是按钮。
任何帮助? 对不起,如果它是一个dumm问题,但现在我无所事事。 谢谢!
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
if (FBSession.activeSession.isOpen)
{
[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error) {
_userFacebookData = result;
UIStoryboard *yourStoryB = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
PasscodeEnter *vc = [yourStoryB instantiateViewControllerWithIdentifier:@"enter_password"];
self.window.rootViewController = vc ;
} else {
NSLog(@"couldn't fetch the user data");
}
}];
}
else {
// try to open session with existing valid token
NSArray *permissions = [[NSArray alloc] initWithObjects: @"public_profile", @"email",nil];
FBSession *session = [[FBSession alloc] initWithPermissions:permissions];
[FBSession setActiveSession:session];
if([FBSession openActiveSessionWithAllowLoginUI:NO]) {
[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if (!error) {
_userFacebookData = result;
UIStoryboard *yourStoryB = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
PasscodeEnter *vc = [yourStoryB instantiateViewControllerWithIdentifier:@"enter_password"];
self.window.rootViewController = vc ;
} else {
NSLog(@"couldn't fetch the user data");
}
}];
}
}
[FBLoginView class];
[FBProfilePictureView class];
return YES;
}
答案 0 :(得分:0)
在你的applicationDidFinishLaunching中:
使用此代码更改初始视图控制器
UIStoryboard *yourStoryB = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
_yourNavigationVC = [yourStoryB instantiateViewControllerWithIdentifier:@"MyNavigationVC"];
self.window.rootViewController = _yourNavigationVC ;
在Storyboard中创建一个新的ViewContoller,并为其指定一个标识符并使用它。希望,它有所帮助。
要检测,请长按在您的单元格中使用此代码:
UILongPressGestureRecognizer* longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(gestureHandler:)];
[longPressGesture setMinimumPressDuration:2.0];
[cell addGestureRecognizer:longPressGesture];
-(void)gestureHandler:(UISwipeGestureRecognizer *)gesture
{
if(UIGestureRecognizerStateBegan == gesture.state)
{
UICollectionViewCell *cell = (UICollectionViewCell *)[[gesture view] superview];
//Now add delete button.
}
}
希望,这有帮助。