我正在尝试编写一个刽子手游戏,并且在解开细分时遇到麻烦.我有多个视图控制器,最终导致相同的视图,用户在其中播放实际的刽子手.但是,根据呈现控制器,我希望游戏处于不同的"模式"(即:多人游戏,单人游戏等).我正在尝试添加一个解除前一个视图控制器的游戏按钮,但是当用户可以使用多个路径到达此视图时,我不确定如何展开.
换句话说,我的应用程序有点:
A - > B - > C或
A - > D - > C其中C可以(理想地)展开到D或B.
我想知道实现这个的最佳方法是什么?我应该只将所有视图控制器嵌入导航控制器吗?或者有没有办法根据某种条件呈现某个视图控制器?感谢您的任何帮助!
我正在尝试使用Storyboard在IOS 5.1上完成一个应用程序.基本上我正在做一个Dropbox应用程序.由于我使用Dropbox SDK链接到Dropbox是在AppDelegate.m中处理的.用户可以选择在会话中取消链接,并在不同的View Controller中再次链接.因此,每次用户链接和取消链接的应用程序必须将视图从Appdelegate切换到未连接到rootviewcontroller的视图控制器
在最初的Dropbox示例中,Dropbox处理了如下代码的转换
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
if ([[DBSession sharedSession] handleOpenURL:url]) {
if ([[DBSession sharedSession] isLinked]) {
[navigationController pushViewController:rootViewController.photoViewController animated:YES];
}
return YES;
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
但是我正在使用带有导航控制器的Storyboard,并且以下任何一种方法都不起作用我将方法放在注释中.
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
if ([[DBSession sharedSession] handleOpenURL:url]) {
if ([[DBSession sharedSession] isLinked]) {
NSLog(@"App linked successfully!");
// At this point you can start making API calls
/*UIViewController *viewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:NULL] instantiateViewControllerWithIdentifier:@"MeetingViewController"];
[self.navigationController pushViewController:viewController animated:YES]; */
//[self performSegueWithIdentifier:@"xxxx" sender:self];
/* LoginDropboxViewController *loginController=[[LoginDropboxViewController alloc] initWithNibName:@"LoginDropbox" …Run Code Online (Sandbox Code Playgroud) 我有一个名为Dashboard(D)的VC,它可以打开一个名为Login(L)的VC和一个名为Register(R)的VC.登录也可以打开VC Register.
我尝试尽可能多地使用故事板,所以我用它创建了三个Segues,D到L,D到R,L到R
因此,在D - > L - > R的情况下,并且在D - > R的情况下,当我关闭R时,如果必要则我必须关闭L并告知D他可以开始加载用户信息(启动功能在概括地说).
所以,我想在目的地vc中获得Segue的发送者,知道我把它放在performSegueWithIdentifier的发送者中,就像那样:
[self performSegueWithIdentifier:@"SegueToFbRegister" sender:self];
Run Code Online (Sandbox Code Playgroud) 在下面的代码我只是尝试直接从设立SEGUE UIViewController到DetailViewController.我通常从UITableViewCell(我认为更清楚)做segue 但这次我只想尝试直接从ViewController使用-tableView:didSelectRowAtIndexPath:
我的问题是:我遇到了一种情况,我需要UITableViewCell indexPath在-prepareForSegue:sender:我的解决方案中访问来自发送indexPath通道sender.通常我会将发件人设置到self这里,我已经环顾四周,我找不到任何对此的引用,我只是好奇如果使用sender传递indexPath是可以接受的吗?我很确定它是,并且我确信我已经读过你可以在某个地方,但我现在找不到任何参考.
// ------------------------------------------------------------------- **
// DELEGATE: UITableView
// ------------------------------------------------------------------- **
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"%s", __PRETTY_FUNCTION__);
[self performSegueWithIdentifier:@"SEGUE_TWO" sender:indexPath];
}
// ------------------------------------------------------------------- **
// SEGUE: ViewController_ONE > DetailViewController
// ------------------------------------------------------------------- **
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSLog(@"%s", __PRETTY_FUNCTION__);
if([[segue identifier] isEqualToString:@"SEGUE_TWO"]) {
NSUInteger cellRow = [(NSIndexPath *)sender row];
DetailViewController *destinationController = [segue destinationViewController];
[destinationController setDataString:[[self …Run Code Online (Sandbox Code Playgroud) 我在ViewController1中有一个textField.我有一个push segue到我的ViewController2,它也有一个textField.我需要将ViewController2中的textField.text设置为等于ViewController1中textField中的文本.这是我的代码:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqual:@"ViewController2"])
{
ViewController2 *VCT = [segue destinationViewController];
VCT.title = @"View Controller #2";
VCT.textField.text = self.textField.text;
}
}
Run Code Online (Sandbox Code Playgroud)
标题制定者工作得很好.为什么textField不起作用?
我很难让performSegueWithIdentifier工作.我一直在
"Receiver (<UINavigationController: 0x1e59a9d0>) has no segue with
identifier 'identA'"
Run Code Online (Sandbox Code Playgroud)
我做的是:
步骤:有线视图控制器A到视图控制器B,推送segue与标识符"identA"像这样:

步骤:在视图控制器A的ViewDidLoad上添加了对performSegueWithIdentifier的调用.像这样:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.navigationController performSegueWithIdentifier:@"identA" sender:self];
// Do any additional setup after loading the view, typically from a nib.
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么???
比方说,我有一个场景(带有导航栏的推视控制器),它在表格视图中显示一些表格数据.在那个场景的导航栏中,我有一个+符号,它应该打开一个新场景,用户可以在其中添加一个新项目(行到核心数据表).在表格视图中,每行在每个单元格的右侧都有一个箭头,用于打开一个用户可以编辑该特定项目详细信息的场景.我应该使用推送或模态segue +?我应该使用推动或模态segue箭头吗?什么是"最佳实践"?我理解push和modal segues之间的区别,但我想知道哪个更适合上述用例.
我试图理解使用NavigationController在(和没有)ViewControllers之间导航的行为,我在阅读文章和文档时误解了一些事情,所以我决定问他们.
主要问题是:如果我们在Storyboard中有多个NavigationControllers并希望从一个到另一个,会发生什么?(这可以通过我们在常见的VC之间使用segue来实现,我是对的吗?)
据我所知,NavigationController代表了一堆ViewControllers,我们可以在其中弹出并推送这些VC.那么现在我们将第一个NavigationController的VC的"位置"从第二个改为VC,接下来会发生什么?第一个堆栈消失了,现在我们只在第二个堆栈内工作了?如果是这样,是否意味着第一个NavigationController的VC堆栈是否已从内存中删除?
也许我完全误解了某些东西或者可能不是:).我很乐意看到您的回复,并希望向您询问有关导航力学的更多详细问题.
UPDATE
关键在于:假设我们有一个(初始)VC,其中两个按钮代表应用程序的两个独立部分.接下来我们点击第一个按钮然后转到一个NC的RootVC,而不是回到我们的初始VC按下第二个按钮然后转到另一个NC.当我们回到最初的VC时,第一个NC的堆栈发生了什么?最初的"NC"到初始VC的最佳方式是什么?
UPDATE
我试图了解内存会发生什么,以及当前场景中哪些VC等等.如果我们在场景中有一些额外的VC,也许它绝对不重要,也许我们确实需要它们更快地在NC(或只是VC)之间切换.所以我想了解它是如何运作的.
在Xcode 7 GM中,我在故事板中收到了上述警告.这是什么意思?
我确实有一些自定义segues,他们将类分配给转换管理器(UIStoryboardSegue).我在故事板中检查了所有segue,并且所有自定义segues都有自定义类,并且所有非自定义segue都没有分配自定义类(包括展开segues).
有任何想法吗?
如何使用Swift将存储在标签中的数据从我的接口控制器传递到WatchKit中的另一个接口控制器?我似乎无法在任何地方找到答案,希望有人在这里可以帮助我.我已经包含了我的代码部分,它涉及计算我需要传递的值.我基本上想要显示用户计算的相同值,并在下一个名为ResultsController的接口控制器中详细说明.非常感谢任何帮助:D
class InterfaceController: WKInterfaceController {
var currentValue: String = "0"
func setDisplayValue(value: Double)
{
var percent = value
// check if value is an integer
if value % 1 == 0
{
// our value is an integer
currentValue = "\(Int(value))"// new value %
}
else
{
// our value is a float
currentValue = "\(value)"
}
// Display 2 decimal places in final amount
var round = NSString(format:"%.2f", value)
displayLabel.setText("$\(round)") // Display final value
// This value is what …Run Code Online (Sandbox Code Playgroud) segue ×10
ios ×9
objective-c ×5
swift ×3
iphone ×2
storyboard ×2
uitableview ×2
xcode ×2
cocoa-touch ×1
dropbox ×1
ios9 ×1
uitextfield ×1
unwind-segue ×1
watchkit ×1